QR Code: come è fatto, quanti dati contiene e come leggerlo con un lettore di codici a barre
Il QR Code è un codice 2D a matrice riconoscibile dai tre quadrati negli angoli. Contiene fino a 7089 cifre, 4296 caratteri alfanumerici o 2953 byte, con correzione degli errori su quattro livelli (L, M, Q, H). Lo leggono solo imager 2D e fotocamere: un lettore laser o lineare non può decodificarlo con nessuna impostazione.
Struttura di un QR Code
Ogni QR Code è una griglia quadrata di moduli neri e bianchi. Oltre ai dati contiene elementi fissi che servono al lettore per trovarlo, orientarlo e misurarlo:
- Tre finder pattern: i quadrati concentrici in tre angoli. Permettono di riconoscere il codice e la sua rotazione da qualsiasi angolazione. Sono circondati da un bordo bianco (separatore).
- Timing pattern: due linee di moduli alternati tra i finder, che danno al lettore il passo della griglia.
- Alignment pattern: quadratini più piccoli, presenti dalla versione 2 in su, che compensano la distorsione su superfici curve o inquadrate di sbieco.
- Informazioni di formato (livello di correzione e maschera) vicino ai finder e, dalla versione 7, informazioni di versione.
- Zona di rispetto: un margine chiaro di 4 moduli su tutti i lati. Se manca, molti lettori non trovano il codice.
Le dimensioni vanno dalla versione 1 (21 × 21 moduli) alla versione 40 (177 × 177): ogni versione aggiunge 4 moduli per lato. Esiste anche il Micro QR, con un solo finder pattern, per pochissimi dati; su alcuni lettori è disattivato di fabbrica.
Livelli di correzione degli errori
Il QR Code usa la correzione Reed-Solomon: parte dei moduli è ridondante e permette di ricostruire i dati anche se il codice è sporco, graffiato o parzialmente coperto.
| Livello | Danno recuperabile (circa) | Quando usarlo |
|---|---|---|
| L | 7% | Stampa pulita, massimo contenuto o codice più piccolo |
| M | 15% | Uso generale: il compromesso più comune |
| Q | 25% | Ambienti sporchi, etichette industriali |
| H | 30% | Codici con logo al centro, superfici molto esposte |
Più alto è il livello, più moduli servono per gli stessi dati: il codice diventa più denso o più grande. Un livello H non rende leggibile un QR stampato troppo piccolo; spesso conviene un livello M con moduli più grandi.
Quanti dati contiene
La capacità dipende dalla versione, dal livello di correzione e dalla modalità di codifica. Il QR sceglie la modalità in base ai caratteri: numerica (solo cifre), alfanumerica (cifre, lettere maiuscole, spazio e $ % * + - . / :, 45 caratteri), byte (qualsiasi dato, di solito testo UTF-8) e kanji.
| Versione e livello | Cifre | Alfanumerici | Byte |
|---|---|---|---|
| 1-L (21 × 21) | 41 | 25 | 17 |
| 1-H (21 × 21) | 17 | 10 | 7 |
| 40-H (177 × 177) | 3057 | 1852 | 1273 |
| 40-L (177 × 177) | 7089 | 4296 | 2953 |
I valori massimi sono teorici: un QR di versione 40 ha moduli così piccoli che, stampato su un'etichetta normale, mette in difficoltà anche buoni lettori. Le minuscole fanno passare il QR dalla modalità alfanumerica a quella byte, che è meno efficiente: un URL scritto tutto in maiuscolo produce un codice più piccolo. Per creare codici di prova usa il generatore di QR code.
Perché un lettore laser non legge il QR Code
Un laser legge misurando la luce riflessa lungo una sola linea che attraversa il codice: ottiene una sequenza di barre e spazi. In un QR i dati sono distribuiti su tutta la superficie e una singola linea ne attraversa solo una piccola parte, senza alcun riferimento per ricostruire la griglia. Non è un limite di firmware o di impostazioni: il sensore non acquisisce l'informazione necessaria. Lo stesso vale per gli imager lineari (CCD), che fotografano una sola riga.
Per leggere QR Code serve un imager 2D (lettore a pistola, da banco o terminale) oppure la fotocamera di uno smartphone. Il confronto completo è in laser, CCD o imager 2D.
Impostazioni del lettore
- Abilitazione: il QR Code è di solito attivo di fabbrica sui lettori 2D. Micro QR e QR invertito (chiaro su fondo scuro) spesso no.
- Codici invertiti: molti QR su app e siti in modalità scura sono bianchi su nero. Se il lettore non reagisce, cerca l'opzione "inverse" o "reverse video" nel manuale.
- Lettura da schermo: i 2D moderni leggono dai display, ma su schermi lucidi o con luminosità bassa può servire alzare la luminosità o cambiare angolo. Vedi leggere codici da schermo.
- Codifica dei caratteri: alcuni lettori permettono di scegliere come interpretare i byte (UTF-8 o altre codifiche). Influisce sulle lettere accentate.
Cosa riceve il PC
Il lettore trasmette il contenuto testuale del QR, seguito dal suffisso. Con l'identificatore AIM attivo, un QR standard è preceduto da ]Q1, un GS1 QR Code da ]Q3 (altri modificatori indicano l'uso di ECI). In emulazione tastiera il contenuto viene "digitato", e qui nascono i problemi tipici:
Contenuto del QR: WIFI:S:Negozio;T:WPA;P:Prova-2026;; Lettore US, PC italiano: WIFIçSçNegozioòTçWPAòPçProva'2026òò Lettore impostato IT: WIFI:S:Negozio;T:WPA;P:Prova-2026;;
- Simboli alterati dal layout tastiera, come sopra: imposta la tastiera italiana sul lettore. Vedi impostare la tastiera italiana.
- Lettere accentate mancanti o sbagliate: spesso non hanno un tasto diretto sul layout scelto. La modalità ALT risolve: vedi modalità ALT e tastiera universale.
- QR con più righe: gli a capo nel contenuto diventano pressioni di Invio, che possono confermare un modulo a metà. Rimuovili con la formattazione dei dati o usa un campo multiriga.
- Caratteri persi su QR lunghi: l'applicazione non tiene il ritmo della digitazione. Aumenta il ritardo tra caratteri.
Per vedere esattamente cosa arriva, compresi a capo e caratteri invisibili, usa il test del lettore.
Usi tipici in Italia
- Avvisi di pagamento pagoPA, che riportano un QR Code con i dati del pagamento.
- Biglietti ed eventi, letti spesso da schermo. Vedi eventi e biglietti.
- URL su etichette e cartelli, menu, schede prodotto.
- GS1 QR Code e GS1 Digital Link: QR con un URL strutturato che contiene il GTIN, pensati per essere letti sia dal consumatore sia alla cassa.
Domande frequenti
Un QR Code con logo al centro si legge con un lettore professionale?
Di solito sì, se il codice è stato generato con un livello di correzione sufficiente (Q o H) e il logo non copre finder pattern o informazioni di formato. Prova sempre prima di stampare in serie.
Qual è la dimensione minima di stampa?
Dipende dal numero di moduli e dalla risoluzione del lettore. Come regola pratica, più dati inserisci più il codice deve essere grande; riduci il contenuto (per esempio un URL corto) invece di rimpicciolire. Vedi codici piccoli e alta densità.
Posso leggere QR Code con un lettore CCD?
No. Un imager lineare (CCD) acquisisce una sola riga: legge i codici lineari, anche da schermo in molti casi, ma non i QR Code.
Fonti e riferimenti
Altro in Tipi di codici a barre
- Tipi di codici a barre: tabella comparativa completa
- Cifra di controllo: calcolo EAN, UPC, GTIN e SSCC
- Code 128: struttura, set A B C e impostazioni lettore
- Code 39: caratteri, mod 43, Code 32 e impostazioni
- EAN-13 ed EAN-8: struttura, prefissi e lettura
- GS1-128 e Application Identifier: guida pratica
- GS1 DataBar: varianti, uso e impostazioni del lettore
- Interleaved 2 of 5 e ITF-14: struttura e lettura
- PDF417: struttura, capacità e lettori compatibili
- UPC-A e UPC-E: struttura, conversioni e lettura