Modalità di codifica

Detto anche: modalità dei dati, modalità numerica, modalità alfanumerica, modalità byte, modalità kanji, encoding modes

Definizione

Le modalità di codifica sono i modi in cui un codice QR impacchetta i caratteri in bit. Le quattro modalità principali sono numerica, alfanumerica, byte e kanji, e un solo codice può passare dall'una all'altra.

Le quattro modalità principali

Ogni modalità scambia varietà di caratteri con densità. La modalità numerica gestisce solo le cifre ma ne impacchetta tre in 10 bit, mentre la modalità byte gestisce qualsiasi byte ma ne spende 8 bit per ciascuno.

La modalità alfanumerica copre un set di 45 caratteri: le cifre 0–9, le lettere maiuscole A–Z, lo spazio e i simboli $ % * + - . / e i due punti. Le lettere minuscole non ne fanno parte, ed è per questo che un URL tutto in maiuscolo può dare un codice più piccolo dello stesso URL in minuscolo.

  • Numerica: cifre 0–9, 10 bit ogni 3 cifre
  • Alfanumerica: 45 caratteri, 11 bit ogni 2 caratteri
  • Byte: qualsiasi valore a 8 bit, 8 bit per byte
  • Kanji: caratteri a doppio byte Shift JIS, 13 bit ciascuno

Indicatori di modalità e segmenti

Ogni sequenza di dati inizia con un indicatore di modalità di 4 bit e un conteggio dei caratteri, la cui lunghezza dipende dalla modalità e dalla versione. Un codice può contenere più segmenti di questo tipo, per esempio numerico per una lunga serie di cifre e byte per il resto, e questo può rendere il risultato più piccolo.

Altri indicatori di 4 bit segnalano funzioni e non set di caratteri: ECI per dichiarare una codifica dei caratteri, structured append per dividere i dati su più codici e FNC1 per i formati di dati GS1 e di altri settori. Un terminatore di quattro bit a zero chiude i dati.

  • Numerica 0001, alfanumerica 0010, byte 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 in prima posizione 0101, in seconda posizione 1001
  • Terminatore 0000

Modalità byte e set di caratteri

L'interpretazione predefinita della modalità byte secondo lo standard è ISO-8859-1 (Latin-1), ma oggi la maggior parte dei generatori scrive UTF-8, così lettere accentate, altri alfabeti ed emoji si conservano. I lettori di solito riconoscono l'UTF-8 esaminando i byte.

Dove il set di caratteri deve essere inequivocabile, un'intestazione ECI può dichiararlo in modo esplicito. Senza, un lettore può talvolta indovinare male e mostrare caratteri illeggibili.

Domande frequenti

Perché il mio codice QR è più grande con le lettere minuscole?

Le lettere minuscole non fanno parte del set alfanumerico, quindi il testo deve usare la modalità byte con 8 bit per carattere invece di 5,5. Lettere maiuscole, cifre e qualche simbolo si impacchettano in modo più compatto.

Un codice QR può memorizzare emoji o testo non latino?

Sì, in modalità byte con UTF-8, che la maggior parte dei generatori e dei lettori dei telefoni supporta. Ognuno di questi caratteri occupa più byte, quindi la capacità cala.

Un solo codice QR può mescolare dati numerici e testo?

Sì. I dati si possono dividere in segmenti, ciascuno con la propria modalità, e i buoni codificatori scelgono la divisione che dà il codice più piccolo.

Fonti e standard

Tutti i termini