QR コードエンコーディングとは、データを QR コードのパターンに変換するプロセスです。数字モード、英数字モード、バイトモード、漢字モードの 4 つのエンコーディングモードがあり、データの種類に応じて最適なモードが自動選択されます。
数字モードは 0 〜 9 の数字のみを扱い、 3 桁を 10 ビットで表現するため最も効率的です。英数字モードは 0 〜 9 、 A 〜 Z 、スペース、 $ % * + - . / : の 45 文字を扱い、 2 文字を 11 ビットで表現します。バイトモードは任意のバイナリデータ (UTF-8 エンコードされた日本語を含む) を扱い、 1 バイトを 8 ビットで表現します。漢字モードは Shift_JIS の漢字を 1 文字 13 ビットで表現します。
URL を QR コードに格納する場合、 URL に含まれる文字種によってエンコーディングモードが変わります。英数字と記号のみの URL は英数字モードで効率的にエンコードされますが、日本語を含む URL (パーセントエンコーディング後) はバイトモードになり、データ量が増加します。短縮 URL を使えば URL が短くなるため、より小さなバージョンの QR コードで済み、印刷面積の節約と読み取り精度の向上につながります。
QR コード生成ライブラリ (qrcode.js 、 python-qrcode など) は、入力データに応じて最適なエンコーディングモードを自動選択します。関連書籍は Amazon でも探せます。