Moduri de codificare

Numit și: moduri de date, mod numeric, mod alfanumeric, mod octet, mod kanji

Definiție

Modurile de codificare sunt felurile în care un cod QR împachetează caracterele în biți. Cele patru moduri principale sunt numeric, alfanumeric, octet și kanji, iar un singur cod poate trece de la unul la altul.

Cele patru moduri principale

Fiecare mod schimbă gama de caractere pe densitate. Modul numeric tratează doar cifre, dar împachetează trei dintre ele în 10 biți, în timp ce modul octet tratează orice octet, dar cheltuiește 8 biți pentru fiecare.

Modul alfanumeric acoperă un set de 45 de caractere: cifrele 0–9, literele mari A–Z, spațiul și simbolurile $ % * + - . / și două puncte. Literele mici nu fac parte din set, de aceea un URL scris integral cu majuscule poate da un cod mai mic decât același URL scris cu litere mici.

  • Numeric: cifrele 0–9, 10 biți pentru 3 cifre
  • Alfanumeric: 45 de caractere, 11 biți pentru 2 caractere
  • Octet: orice valoare pe 8 biți, 8 biți per octet
  • Kanji: caractere Shift JIS pe doi octeți, 13 biți fiecare

Indicatori de mod și segmente

Fiecare șir de date începe cu un indicator de mod de 4 biți și un număr de caractere, a cărui lungime depinde de mod și de versiune. Un cod poate conține mai multe astfel de segmente, de exemplu numeric pentru un șir lung de cifre și octet pentru restul, ceea ce poate face rezultatul mai mic.

Alți indicatori de 4 biți semnalează funcții, nu seturi de caractere: ECI pentru declararea unei codări de caractere, structured append pentru împărțirea datelor pe mai multe coduri și FNC1 pentru GS1 și alte formate de date industriale. Un terminator de patru biți zero încheie datele.

  • Numeric 0001, alfanumeric 0010, octet 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 prima poziție 0101, a doua poziție 1001
  • Terminator 0000

Modul octet și seturile de caractere

Interpretarea implicită a standardului pentru modul octet este ISO-8859-1 (Latin-1), dar cele mai multe generatoare scriu astăzi UTF-8, astfel încât literele cu diacritice, alte alfabete și emoji să se păstreze. Cititoarele detectează de obicei UTF-8 inspectând octeții.

Acolo unde setul de caractere trebuie să fie fără echivoc, un antet ECI îl poate declara explicit. Fără el, un cititor poate ghici uneori greșit și poate afișa caractere încurcate.

Întrebări frecvente

De ce este codul meu QR mai mare cu litere mici?

Literele mici nu fac parte din setul alfanumeric, deci textul trebuie să folosească modul octet, cu 8 biți pe caracter în loc de 5,5. Literele mari, cifrele și câteva simboluri se împachetează mai strâns.

Poate un cod QR să stocheze emoji sau text în alfabet non-latin?

Da, în modul octet cu UTF-8, pe care îl acceptă majoritatea generatoarelor și cititoarelor de pe telefon. Fiecare astfel de caracter ocupă mai mulți octeți, deci capacitatea scade.

Poate un cod QR să combine date numerice și text?

Da. Datele pot fi împărțite în segmente, fiecare cu propriul mod, iar codificatoarele bune aleg împărțirea care dă cel mai mic cod.

Surse și standarde

Toți termenii