I codici QR spiegati: capacità, correzione degli errori e dimensioni di stampa

Aggiornato:

Un codice QR è una griglia di quadratini bianchi e neri che memorizza del testo: di solito un link, a volte le credenziali di una rete Wi-Fi, un numero di telefono o una richiesta di pagamento. È stato presentato nel 1994 da Denso Wave, allora una divisione del produttore di componenti per auto Denso, per tracciare i pezzi all’interno delle sue fabbriche, ed è diventato universale quando le fotocamere dei telefoni hanno imparato a leggerlo. Lo stesso codice si può leggere anche quando una sua parte è sporca o coperta, e quanto può contenere dipende da tre scelte: quanto testo, che tipo di testo e quanti danni deve sopportare. Questa guida spiega queste scelte e cosa significano per un codice che stai per stampare.

Cosa c’è nella griglia

Ogni quadratino è un modulo. I tre quadrati grandi negli angoli sono i pattern di posizionamento: indicano al lettore dove si trova il codice e com’è orientato. Le linee di moduli alternati che li collegano, i pattern di temporizzazione, danno la spaziatura della griglia, e dalla versione 2 in poi dei quadrati di allineamento più piccoli aiutano a compensare una superficie curva o inclinata. Una striscia accanto ai pattern di posizionamento registra il livello di correzione degli errori e la maschera, uno di 8 schemi sovrapposti ai dati in modo che non formino mai grandi aree vuote o forme che somiglino a un pattern di posizionamento. I codici di versione 7 o superiore registrano anche la propria versione. Tutto il resto sono dati e correzione degli errori.

Intorno al codice deve esserci un margine vuoto, la zona di rispetto (quiet zone), largo quattro moduli su ogni lato. Senza di esso il lettore potrebbe non capire dove finisce il codice, e un codice che sullo schermo sembra perfetto può non funzionare più una volta stampato su uno sfondo pieno di elementi.

Versioni: perché alcuni codici sono più densi

La dimensione della griglia si chiama versione. La versione 1 è di 21 × 21 moduli, e ogni versione aggiunge 4 moduli per lato, fino alla versione 40 da 177 × 177. Un generatore sceglie la versione più piccola in cui il testo entra, quindi più testo significa moduli più numerosi e più piccoli nella stessa area stampata. Ecco le versioni necessarie per alcuni contenuti tipici al livello M, la scelta più comune:

ContenutoCaratteriVersione al livello M
https://ntools.xyz182 (25 × 25)
Le credenziali di una rete Wi-Fi con una password di 28 caratteri584 (33 × 33)
Un link lungo con cinque parametri di tracciamento1268 (49 × 49)

Il link lungo richiede quasi il doppio dei moduli per lato rispetto a quello corto. Stampato alle stesse dimensioni, ciascuno dei suoi moduli è largo poco più della metà, quindi il telefono deve stare più vicino e più fermo. Accorciare il link è il modo più efficace per rendere un codice più facile da leggere.

Quanto può contenere un codice QR

Un codice QR codifica il testo in una di quattro modalità. La modalità numerica è quella che compatta di più le cifre. La modalità alfanumerica copre 45 caratteri: le cifre, le lettere maiuscole dalla A alla Z, lo spazio e $ % * + - . / :. La modalità byte accetta qualsiasi dato ed è quella usata da quasi tutti i link, perché le lettere minuscole non fanno parte dell’insieme alfanumerico. La modalità Kanji è pensata per il testo giapponese.

L’insieme di caratteri predefinito dello standard per la modalità byte è ISO 8859-1, che copre solo le lettere dell’Europa occidentale. Il testo in altri alfabeti, o con simboli come €, viene scritto in UTF-8 dalla maggior parte dei generatori, nTools compreso, e il lettore deve riconoscerlo: molti lettori lo fanno, ma non tutti. Il codice più grande, la versione 40, contiene:

LivelloCifreAlfanumericiByte
L7.0894.2962.953
M5.5963.3912.331
Q3.9932.4201.663
H3.0571.8521.273

Sono limiti, non obiettivi. Un codice di versione 40 ha 31.329 moduli, e un telefono riesce a leggerlo solo se è stampato grande e nitido. Per qualsiasi cosa da stampare, un contenuto breve mantiene il codice facile da leggere.

Generatore QR e QR Wi-Fi

Correzione degli errori: L, M, Q e H

I codici QR usano la correzione degli errori Reed–Solomon, la stessa famiglia di codici usata nei CD. Una parte di ogni codice è fatta di dati ridondanti, a partire dai quali il lettore può ricostruire ciò che manca. Ci sono quattro livelli, e ciascuno può ripristinare all’incirca questa quota dei dati:

Denso Wave osserva che il livello M è quello scelto più spesso, con Q o H per ambienti sporchi come le fabbriche e L per condizioni pulite e grandi quantità di dati. Il prezzo di un livello più alto è la dimensione: lo stesso link al livello H richiede più moduli che al livello M. Le percentuali si riferiscono alle codeword, blocchi di 8 bit, non ai moduli, quindi un graffio che attraversa il codice può danneggiarne una parte maggiore di quanto suggerisca la sua area.

Un logo al centro di un codice funziona solo perché la correzione degli errori ricostruisce i moduli che nasconde, e quindi consuma parte di quel margine prima ancora che il codice debba fare i conti con sporco o riflessi. Se ne aggiungi uno, tienilo piccolo, non coprire mai i tre quadrati agli angoli né la zona di rispetto, e prova il risultato su diversi telefoni.

Quanto grande stamparlo

La dimensione stampata è il numero di moduli, più 8 per la zona di rispetto, moltiplicato per la larghezza di un modulo. L’esempio fornito dalla stessa Denso Wave è un codice di versione 3, largo 29 moduli, stampato con moduli da 0,254 mm: 7,4 mm per il codice e 9,4 mm con il margine. Moduli così piccoli vanno bene per uno scanner dedicato tenuto vicino all’etichetta; la fotocamera di un telefono a distanza di un braccio ne richiede di molto più grandi.

Con una larghezza stampata di 2 cm, margine compreso, un codice di versione 2 ha moduli larghi circa 0,61 mm, mentre un codice di versione 8 ha moduli di circa 0,35 mm. Se un codice deve essere piccolo, mantieni breve il suo contenuto.

Codici QR per il Wi-Fi

Un codice Wi-Fi è semplice testo in un formato che le fotocamere dei telefoni riconoscono. È stato reso popolare dal progetto ZXing per i codici a barre e non fa parte dello standard QR vero e proprio:

I caratteri \ ; , : e " vengono preceduti da una barra rovesciata all’interno del nome o della password; il generatore di nTools lo fa per te.

La password è memorizzata nel codice come testo leggibile: chiunque scansioni il codice, o lo fotografi, ha la password. Per un codice appeso a una parete, usa una rete per gli ospiti.

Codici statici e dinamici

Un codice statico contiene direttamente il contenuto, come il link o le credenziali Wi-Fi. Non scade mai, non ha limiti di scansioni e funziona senza alcun servizio intermedio; per cambiare il contenuto, stampi un nuovo codice. Il generatore di nTools crea codici statici.

Un codice dinamico, venduto da molti servizi QR, contiene un link breve a quel servizio, che poi reindirizza al tuo indirizzo reale. Puoi cambiare la destinazione in seguito e contare le scansioni, ma ogni scansione dipende dal servizio: se l’abbonamento termina o l’azienda chiude, i codici stampati smettono di funzionare.

Scansionare in sicurezza

Un codice QR non può eseguire nulla da solo; si limita a passare al telefono del testo, di solito un link. Il rischio sta in dove porta quel link. La Federal Trade Commission, l’agenzia statunitense per la tutela dei consumatori, mette in guardia dai codici falsi incollati sopra quelli veri, per esempio sui parchimetri, e dai codici contenuti in messaggi inattesi che ti spingono ad agire immediatamente.

Domande frequenti

I codici QR scadono?

Un codice statico non scade mai: contiene direttamente il contenuto. Un codice dinamico smette di funzionare quando il servizio dietro il suo link breve smette di reindirizzarlo.

Perché il mio codice QR non viene letto?

Le cause abituali sono un codice stampato troppo piccolo per la quantità di contenuto, una zona di rispetto mancante o ingombra, un contrasto basso, un riflesso o una piega, oppure un logo che copre troppo. Accorciare il contenuto rende più grande ogni modulo.

Quale livello di correzione degli errori dovrei usare?

Il livello M va bene per la maggior parte dei codici stampati. Usa Q o H se il codice si sporcherà o si consumerà, o se contiene un logo, e accetta che sarà più denso.

Cosa fa il generatore di nTools?

Crea codici statici al livello M, scegliendo la versione più piccola in cui il contenuto entra, e aggiunge la zona di rispetto di quattro moduli. Il codice viene disegnato nel tuo browser e nulla di ciò che digiti viene caricato.

Guide correlate