Kodingsmodi

Kalles også: datamodi, numerisk modus, alfanumerisk modus, bytemodus, kanjimodus, encoding modes

Definisjon

Kodingsmodi er måtene en QR-kode pakker tegn inn i biter på. De fire hovedmodusene er numerisk, alfanumerisk, byte og kanji, og én enkelt kode kan bytte mellom dem.

De fire hovedmodusene

Hver modus veier tegnutvalg mot tetthet. Numerisk modus håndterer bare sifre, men pakker tre av dem inn i 10 biter, mens bytemodus håndterer hvilken som helst byte, men bruker 8 biter på hver.

Alfanumerisk modus dekker et tegnsett på 45 tegn: sifrene 0–9, de store bokstavene A–Z, mellomrom og symbolene $ % * + - . / og kolon. Små bokstaver er ikke med i settet, og det er grunnen til at en URL med bare store bokstaver kan gi en mindre kode enn den samme URL-en med små bokstaver.

  • Numerisk: sifrene 0–9, 10 biter per 3 sifre
  • Alfanumerisk: 45 tegn, 11 biter per 2 tegn
  • Byte: en hvilken som helst 8-bitsverdi, 8 biter per byte
  • Kanji: Shift JIS-tegn på to byte, 13 biter hver

Modusindikatorer og segmenter

Hver dataserie begynner med en modusindikator på 4 biter og et tegnantall, der lengden avhenger av modusen og versjonen. En kode kan inneholde flere slike segmenter, for eksempel numerisk for en lang rekke sifre og byte for resten, og det kan gjøre resultatet mindre.

Andre indikatorer på 4 biter signaliserer funksjoner i stedet for tegnsett: ECI for å oppgi en tegnkoding, structured append for å dele data over flere koder, og FNC1 for GS1 og andre bransjespesifikke dataformater. En terminator på fire nullbiter avslutter dataene.

  • Numerisk 0001, alfanumerisk 0010, byte 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 første posisjon 0101, andre posisjon 1001
  • Terminator 0000

Bytemodus og tegnsett

Standardens forvalgte tolkning av bytemodus er ISO-8859-1 (Latin-1), men de fleste generatorer skriver i dag UTF-8 slik at aksenttegn, andre skriftsystemer og emoji overlever. Lesere gjenkjenner vanligvis UTF-8 ved å undersøke bytene.

Der tegnsettet må være entydig, kan en ECI-header oppgi det eksplisitt. Uten en slik header kan en leser av og til gjette feil og vise forvrengte tegn.

Vanlige spørsmål

Hvorfor blir QR-koden min større med små bokstaver?

Små bokstaver er ikke med i det alfanumeriske settet, så teksten må bruke bytemodus med 8 biter per tegn i stedet for 5,5. Store bokstaver, sifre og noen få symboler pakkes tettere.

Kan en QR-kode lagre emoji eller ikke-latinsk tekst?

Ja, i bytemodus med UTF-8, som de fleste generatorer og telefonlesere støtter. Hvert slikt tegn tar flere byte, så kapasiteten går ned.

Kan én QR-kode blande numeriske data og tekst?

Ja. Dataene kan deles i segmenter, hvert med sin egen modus, og gode kodere velger delingen som gir den minste koden.

Kilder og standarder

Alle begreper