QRコード読み取り
画像・貼り付けたスクリーンショット・カメラから QR コードを読み取り。1 枚に複数のコードも全部読み、Shift_JIS の日本語も文字化けしません。URL は実際の接続先ドメインを表示。画像はアップロードしません。
- 画像とカメラ映像はブラウザー内に留まります。URL モードは入力したアドレスから画像をダウンロードします
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
QR コードと Shift_JIS
QR コードは 1994 年にデンソーウェーブ(当時はデンソーの一事業部)が発表したコードで、開発時から「漢字やカナも表現したい」という要望に応えることが目標でした(デンソーウェーブ「QRコード道のり」)。そのため仕様には Shift_JIS の 2 バイト文字を 13 ビットで詰める漢字モードがあります。また文字コードを示す ECI は任意なので、バイトモードに Shift_JIS のバイト列を宣言なしで入れたコードも作れます。
こうしたコードを UTF-8 前提で読むと文字化けするか、空になります。このツールで確かめた結果は次のとおりです。
| コードの中身 | 読み取り結果 |
|---|---|
| 漢字モードの「漢字モード」 | 正しく表示(Shift_JIS) |
| バイトモードの Shift_JIS「東京都千代田区丸の内 カフェ」、ECI なし | 正しく表示、「Shift_JIS(推定)」 |
| ECI 20(Shift_JIS)を宣言した「こんにちは世界」 | 正しく表示、「Shift_JIS(ECI 20)」 |
| ECI 26(UTF-8)を宣言した「Grüße 你好 안녕」 | 正しく表示、「UTF-8(ECI 26)」 |
ECI がないとき、UTF-8 として正しいバイト列は UTF-8、そうでなければ日本語ページでは Shift_JIS を先に試し、残りは ZXing の推定規則に従います。推定が外れたら「文字コード」メニューで GB18030、EUC-KR、Big5 なども選べます。
読み取り結果の見方
- URL:
http/httpsだけをリンクにし、クリックしたときだけ新しいタブで開きます。アドレスに@があると、その前はユーザー名にすぎないことと実際の接続先を表示します。ラテン文字以外を含むホストは punycode(xn--)で表示し、紛らわしい文字に注意を促します。 - 連絡先:vCard と、NTT ドコモが定めた MECARD 形式を項目ごとに表示します。
MECARD:N:山田,太郎;SOUND:ヤマダ,タロウ;TEL:0312345678;EMAIL:taro@example.jp;;は名前「山田,太郎」、よみがな「ヤマダ,タロウ」、電話、メールの 4 行になります。 - Wi-Fi・メール・電話・SMS・位置情報:それぞれ項目に分けます(Wi-Fi の書式は ZXing: Barcode Contents)。
SMSTO:+819012345678:予約を確認しましたは番号と本文に分かれます。 - アプリのリンク:
weixin://やotpauth://などはテキストのまま表示し、javascript:・data:・file:には警告を付けます。
複数のコード・大きな写真
1 枚の画像に写ったコードは最大 16 個まで読み、左上から番号を付けます。白黒反転したコード、回転したコード、余白のないコードも読めます。16,777,216 ピクセル(iOS Safari のキャンバス上限)を超える写真は縮小してから読み、その旨を表示します。4000×3000 の写真に写った 180 ピクセルのコードは、デスクトップ版 Chromium で約 1.2 秒でした。33 モジュールのコードを 45×45 ピクセルまで縮めると読めず、60×60 なら読めました。
ほかの読み取りツールとの比較
2026-09-30 に同じテスト画像をデスクトップ版 Chromium で読み込んだ結果です(白黒反転とグレーの低コントラストはどれも読めました)。
| テスト画像 | ZeroTool | QR TOOL | ScanQR |
|---|---|---|---|
| Shift_JIS のテキスト(ECI なし) | 正しく表示 | 「読み取りに成功しました!」で文字列は空 | 「QR code detected!」で文字列は空 |
| 1 枚に 3 つのコード | 3 件 | 1 件(Wi-Fi のみ) | 3 件 |
| 4000×3000 の写真の小さなコード | 約 1.2 秒で読み取り | 20 秒後も「少々お待ちください」 | 「No QR code found」 |
javascript: の中身 | テキスト+警告 | テキスト | テキスト |
制限事項
- 1 回に 1 枚です。PDF はスクリーンショットにしてください。HEIC は表示できるブラウザー(Safari)でだけ読めます。
- 初回は約 420 KB のデコーダーの読み込みを待ちます。
- 読めるのは QR 系だけで、JAN(EAN)や Code 128 などのバーコードは読めません。
- URL モードは画像のサーバーがクロスオリジン要求(CORS)を許可している場合だけ使えます。
QR コードを作るときは QRコード作成、Wi-Fi の共有には WiFi QRコード作成、長い URL の中身を確かめるには URL 解析ツールを使ってください。
FAQ
画像はサーバーにアップロードされますか?
されません。ファイル、貼り付けたスクリーンショット、カメラ映像はブラウザー内の zxing-wasm で読み取ります。デコーダーは本サイトの /vendor から読み込みます。通信が発生するのは URL モードだけで、入力したアドレスから画像をダウンロードします(Cookie と参照元は送りません)。
パソコンで QR コードを読み取るには?
QR コードが写った画面でスクリーンショットを撮り、このページで Ctrl+V(Mac は ⌘V)を押すだけです。画像ファイルをドロップしても、Web カメラで読み取ってもかまいません。
読み取った日本語が文字化けします。
コードに Shift_JIS などのバイト列が ECI の宣言なしで入っている可能性があります。日本語ページでは UTF-8 でないバイト列をまず Shift_JIS として読みます。それでも崩れる場合は、結果の下の「文字コード」メニューで選び直してください。「バイト列」で 16 進の生データも確認できます。
1 枚の画像に QR コードが複数あっても読めますか?
読めます。最大 16 個まで、左上から順に番号を付けて表示し、プレビュー画像の番号と結果カードが対応します。
カメラで読み取るには何が必要ですか?
標準のカメラ API(getUserMedia)に対応したブラウザー、HTTPS のページ、カメラの許可です。「カメラで読み取る」を押したときだけ許可を求め、映像は端末内で処理します。拒否した場合は写真をアップロードしてください。