Kodeerimisrežiimid

Tuntud ka kui: andmerežiimid, numbriline režiim, tähtnumbriline režiim, baidirežiim, kanji-režiim

Määratlus

Kodeerimisrežiimid on viisid, kuidas QR-kood pakib märke bittideks. Neli põhirežiimi on numbriline, tähtnumbriline, baidi- ja kanji-režiim ning üks kood võib nende vahel vahetada.

Üle vaadanud AriaQR meeskond ·

Kodeerimisrežiimid

Neli põhirežiimi

Iga režiim vahetab märkide ulatuse tiheduse vastu. Numbriline režiim käsitleb ainult numbreid, kuid pakib kolm neist 10 bitti, baidirežiim käsitleb mis tahes baiti, kuid kulutab igaühele 8 bitti.

Tähtnumbriline režiim katab 45-märgilise komplekti: numbrid 0–9, suurtähed A–Z, tühik ning sümbolid $ % * + - . / ja koolon. Väiketähti komplektis pole, mistõttu võib ainult suurtähtedest URL anda väiksema koodi kui sama URL väiketähtedega.

Kodeerimisrežiimid (2)
  • Numbriline: numbrid 0–9, 10 bitti 3 numbri kohta
  • Tähtnumbriline: 45 märki, 11 bitti 2 märgi kohta
  • Bait: mis tahes 8-bitine väärtus, 8 bitti baidi kohta
  • Kanji: Shift JIS kahebaidised märgid, 13 bitti igaüks

Režiimi indikaatorid ja segmendid

Iga andmelõik algab 4-bitise režiimi indikaatori ja märkide arvuga, mille pikkus sõltub režiimist ja versioonist. Kood võib sisaldada mitut sellist segmenti, näiteks numbrilist pika numbrireana ja baidirežiimi ülejäänu jaoks, mis võib tulemust väiksemaks teha.

Teised 4-bitised indikaatorid märgivad funktsioone, mitte märgistikke: ECI märgistiku deklareerimiseks, structured append andmete jagamiseks koodide vahel ning FNC1 GS1 ja teiste tööstusandmevormingute jaoks. Andmed lõpetab nelja nullbiti terminaator.

  • Numbriline 0001, tähtnumbriline 0010, bait 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 esimene positsioon 0101, teine positsioon 1001
  • Terminaator 0000

Baidirežiim ja märgistikud

Standardi vaikimisi tõlgendus baidirežiimile on ISO-8859-1 (Latin-1), kuid enamik generaatoreid kirjutab tänapäeval UTF-8, et rõhumärgiga tähed, teised kirjasüsteemid ja emojid säiliksid. Lugejad tuvastavad UTF-8 tavaliselt baitide kontrollimisega.

Kui märgistik peab olema üheselt mõistetav, saab ECI-päis selle selgesõnaliselt deklareerida. Ilma selleta võib lugeja aeg-ajalt valesti arvata ja kuvada moonutatud märke.

Korduma kippuvad küsimused

Miks on mu QR-kood väiketähtedega suurem?

Väiketähti ei ole tähtnumbrilises komplektis, seega peab tekst kasutama baidirežiimi 8 bitiga märgi kohta 5,5 asemel. Suurtähed, numbrid ja mõned sümbolid pakitakse tihedamalt.

Kas QR-kood saab salvestada emojisid või mittelatiinitekste?

Jah, baidirežiimis UTF-8-ga, mida toetab enamik generaatoreid ja telefonilugejaid. Iga selline märk võtab mitu baiti, seega maht väheneb.

Kas üks QR-kood võib segada numbrilisi ja tekstandmeid?

Jah. Andmed saab jagada segmentideks, igaühel oma režiim, ja head kodeerijad valivad jaotuse, mis annab väikseima koodi.

Allikad ja standardid

Kõik terminid