Režimy kódování

Také se nazývá: datové režimy, číselný režim, alfanumerický režim, bajtový režim, režim kanji

Definice

Režimy kódování jsou způsoby, jimiž QR kód ukládá znaky do bitů. Čtyři hlavní režimy jsou číselný, alfanumerický, bajtový a kanji a jediný kód mezi nimi může přepínat.

Čtyři hlavní režimy

Každý režim vyměňuje rozsah znaků za hustotu. Číselný režim zvládá jen číslice, ale vtěsná tři do 10 bitů, zatímco bajtový režim zvládá libovolný bajt, ale na každý spotřebuje 8 bitů.

Alfanumerický režim pokrývá sadu 45 znaků: číslice 0–9, velká písmena A–Z, mezeru a symboly $ % * + - . / a dvojtečku. Malá písmena v sadě nejsou, proto může adresa URL psaná celá velkými písmeny dát menší kód než stejná adresa malými písmeny.

  • Číselný: číslice 0–9, 10 bitů na 3 číslice
  • Alfanumerický: 45 znaků, 11 bitů na 2 znaky
  • Bajtový: libovolná 8bitová hodnota, 8 bitů na bajt
  • Kanji: dvoubajtové znaky Shift JIS, 13 bitů na znak

Indikátory režimu a segmenty

Každý úsek dat začíná 4bitovým indikátorem režimu a počtem znaků, jehož délka závisí na režimu a verzi. Kód může obsahovat několik takových segmentů, například číselný pro dlouhou řadu číslic a bajtový pro zbytek, což může výsledek zmenšit.

Další 4bitové indikátory signalizují funkce, ne sady znaků: ECI pro deklaraci kódování znaků, structured append pro rozdělení dat mezi více kódů a FNC1 pro formáty dat GS1 a další odvětvové formáty. Data ukončuje terminátor ze čtyř nulových bitů.

  • Číselný 0001, alfanumerický 0010, bajtový 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 první pozice 0101, druhá pozice 1001
  • Terminátor 0000

Bajtový režim a sady znaků

Výchozí výklad bajtového režimu podle normy je ISO-8859-1 (Latin-1), ale většina dnešních generátorů zapisuje UTF-8, aby přežila písmena s diakritikou, jiná písma a emoji. Čtečky obvykle rozpoznají UTF-8 prohlédnutím bajtů.

Tam, kde musí být sada znaků jednoznačná, ji může výslovně deklarovat hlavička ECI. Bez ní může čtečka občas hádat špatně a zobrazit zkomolené znaky.

Často kladené otázky

Proč je můj QR kód větší s malými písmeny?

Malá písmena nejsou v alfanumerické sadě, takže text musí použít bajtový režim s 8 bity na znak místo 5,5. Velká písmena, číslice a několik symbolů se vejdou hustěji.

Může QR kód uložit emoji nebo text mimo latinku?

Ano, v bajtovém režimu s UTF-8, což podporuje většina generátorů i čteček v telefonech. Každý takový znak zabere několik bajtů, takže kapacita klesá.

Může jeden QR kód míchat číselná data a text?

Ano. Data lze rozdělit na segmenty, každý s vlastním režimem, a dobré kodéry vyberou rozdělení, které dá nejmenší kód.

Zdroje a normy

Všechny pojmy