四種主要模式
每種模式都是在字元範圍與密度之間取捨。數字模式只能處理數字,但每 3 個數字只用 10 位元;位元組模式能處理任何位元組,但每個要用掉 8 位元。
英數字元模式涵蓋 45 個字元:數字 0–9、大寫字母 A–Z、空格,以及符號 $ % * + - . / 和冒號。小寫字母不在其中,所以全大寫的網址,可以比同一個小寫網址做出更小的 QR Code。
- 數字:數字 0–9,每 3 個數字 10 位元
- 英數字元:45 個字元,每 2 個字元 11 位元
- 位元組:任何 8 位元的值,每個位元組 8 位元
- 漢字:Shift JIS 雙位元組字元,每個 13 位元
模式指示碼與片段
每一段資料都從 4 位元的模式指示碼與字元數開始,字元數的長度取決於模式與版本。一個 QR Code 可以包含多個這樣的片段,例如長串數字用數字模式,其餘用位元組模式,這樣可能讓結果更小。
其他 4 位元的指示碼表示的是功能而非字元集:ECI 用來宣告字元編碼,結構化附加用來把資料分散到多個 QR Code,FNC1 則用於 GS1 與其他產業資料格式。資料以四個零位元的終止符結束。
- 數字 0001、英數字元 0010、位元組 0100、漢字 1000
- ECI 0111、結構化附加 0011
- FNC1 第一位置 0101、第二位置 1001
- 終止符 0000
位元組模式與字元集
標準對位元組模式的預設解讀是 ISO-8859-1(Latin-1),但現今大多數產生器寫入的是 UTF-8,讓帶重音的字母、其他文字與表情符號都能保留。讀取器通常會檢查位元組來偵測 UTF-8。
在字元集必須明確的場合,可以用 ECI 標頭明確宣告。沒有的話,讀取器偶爾會猜錯,顯示出亂碼。