Koodaustilat

Tunnetaan myös nimillä: datatilat, numeerinen tila, aakkosnumeerinen tila, tavutila, kanji-tila, encoding modes

Määritelmä

Koodaustilat ovat tapoja, joilla QR-koodi pakkaa merkit biteiksi. Neljä päätilaa ovat numeerinen, aakkosnumeerinen, tavu ja kanji, ja yksi koodi voi vaihtaa niiden välillä.

Neljä päätilaa

Jokainen tila vaihtaa merkkivalikoiman tiheyteen. Numeerinen tila käsittelee vain numeroita, mutta pakkaa kolme niistä 10 bittiin, kun taas tavutila käsittelee mitä tahansa tavua mutta käyttää jokaiseen 8 bittiä.

Aakkosnumeerinen tila kattaa 45 merkin joukon: numerot 0–9, isot kirjaimet A–Z, välilyönnin ja symbolit $ % * + - . / sekä kaksoispisteen. Pieniä kirjaimia ei ole joukossa, minkä vuoksi kokonaan isoin kirjaimin kirjoitettu URL voi tuottaa pienemmän koodin kuin sama URL pienin kirjaimin.

  • Numeerinen: numerot 0–9, 10 bittiä kolmea numeroa kohden
  • Aakkosnumeerinen: 45 merkkiä, 11 bittiä kahta merkkiä kohden
  • Tavu: mikä tahansa 8-bittinen arvo, 8 bittiä tavua kohden
  • Kanji: Shift JIS -kaksitavuiset merkit, 13 bittiä kukin

Tilatunnisteet ja segmentit

Jokainen datajakso alkaa 4-bittisellä tilatunnisteella ja merkkimäärällä, jonka pituus riippuu tilasta ja versiosta. Koodissa voi olla useita tällaisia segmenttejä, esimerkiksi numeerinen pitkälle numerojaksolle ja tavu loppuosalle, mikä voi pienentää tulosta.

Muut 4-bittiset tunnisteet ilmaisevat ominaisuuksia eivätkä merkistöjä: ECI merkistön ilmoittamiseen, jäsennelty liittäminen datan jakamiseen useaan koodiin ja FNC1 GS1- ja muille toimialan dataformaateille. Neljän nollabitin päätetunniste päättää datan.

  • Numeerinen 0001, aakkosnumeerinen 0010, tavu 0100, kanji 1000
  • ECI 0111, jäsennelty liittäminen 0011
  • FNC1 ensimmäinen paikka 0101, toinen paikka 1001
  • Päätetunniste 0000

Tavutila ja merkistöt

Standardin oletustulkinta tavutilalle on ISO-8859-1 (Latin-1), mutta useimmat generaattorit kirjoittavat nykyään UTF-8:aa, jotta aksenttikirjaimet, muut kirjoitusjärjestelmät ja emojit säilyvät. Lukijat tunnistavat UTF-8:n yleensä tarkastelemalla tavuja.

Kun merkistön täytyy olla yksiselitteinen, ECI-otsake voi ilmoittaa sen erikseen. Ilman sitä lukija voi toisinaan arvata väärin ja näyttää sekavia merkkejä.

Usein kysytyt kysymykset

Miksi QR-koodini on isompi pienillä kirjaimilla?

Pienet kirjaimet eivät kuulu aakkosnumeeriseen joukkoon, joten teksti täytyy koodata tavutilassa 8 bitillä merkkiä kohden 5,5:n sijaan. Isot kirjaimet, numerot ja muutama symboli pakkautuvat tiiviimmin.

Voiko QR-koodiin tallentaa emojeja tai muuta kuin latinalaista tekstiä?

Kyllä, tavutilassa UTF-8:lla, jota useimmat generaattorit ja puhelinlukijat tukevat. Jokainen tällainen merkki vie useita tavuja, joten kapasiteetti pienenee.

Voiko yhdessä QR-koodissa sekoittaa numeerista ja tekstidataa?

Kyllä. Data voidaan jakaa segmentteihin, joilla kullakin on oma tilansa, ja hyvät koodaajat valitsevat jaon, joka antaa pienimmän koodin.

Lähteet ja standardit

Kaikki käsitteet