Corpus di test pubblico

Le nostre affermazioni di compatibilità degli scanner valgono solo quanto le prove su cui si basano. Questa pagina è il corpus, gli input che sottoponiamo a test di regressione per le nostre famiglie di encoder, più il comportamento della fotocamera del telefono che puoi verificare tu stesso senza fidarti della nostra parola.

Perché questo esiste: la maggior parte degli strumenti QR pubblica una matrice di compatibilità. La nostra pubblica il corpus dietro la matrice. Se sei responsabile di una flotta di scanner, retail, magazzino, farmaceutica, compagnia aerea, DMV, puoi eseguire questo corpus sui tuoi lettori e verificare ogni affermazione che facciamo.

Scarica corpus.zip Fixture JSON + CSV + metodologia + README. ~4 KB.

Caricamento versione…

Come usare il corpus

Scarica i fixture.

Ogni vettore di test è in /test-vectors/fixtures.json. Un oggetto JSON per tipo con i campi di input e le sottostringhe decodificate attese. Recuperato in tempo reale da questo sito, nessuna copia obsoleta.

Rigenera i QR.

Prendi il map fields di qualsiasi fixture, inserisci i valori nel generatore per quel tipo e clicca Genera. Il QR risultante è bit per bit identico a quello che il nostro CI elabora in andata e ritorno.

Scansiona con la tua flotta.

Punta una fotocamera iPhone, fotocamera Android, Google Lens, scanner industriale (Zebra, Honeywell, Datalogic) o lettore specifico dell'app (app bancaria, autenticatore) sul QR generato. Conferma che il testo decodificato contiene ogni sottostringa expect di quel fixture.

Segnala le discrepanze.

Se uno scanner della tua flotta restituisce una decodifica che non corrisponde al fixture, apri un issue. Riprodurremo, aggiungeremo il tuo scanner alla matrice di compatibilità pubblica e (se è un bug dell'encoder) invieremo una correzione.

Risultati di scansione attesi

Renderizzati dallo stesso set di dati della matrice di compatibilità e della riga "Scansiona su" di ogni pagina tipo, quindi le tre cose non possono essere in disaccordo. Il file completo dei fixture su /test-vectors/ ha 33 voci, una per ogni famiglia di encoder che sottoponiamo a test di regressione; non è una riga per tipo di prodotto, e non affermiamo che lo sia.

TipoInput del fixtureiPhone CameraAndroid CameraScanner pro
URLhttps://example.com/testApre il linkA1Apre il linkA5DecodificaA8
WiFiWIFI:S:MyNet;T:WPA;P:...;;Si connette alla reteA1Si connette alla reteA5Decodifica il payloadA8
WiFi Enterprise (EAP)WPA2-EAP PEAP identity=alice@corpiOS 17+, segnalatoUDecodifica; la connessione dipende dal produttoreUDecodifica il payloadQ
vCardFN=Alice ORG=Acme ...Aggiungi a ContattiA1Aggiungi a ContattiA5Decodifica il payloadA8
TOTPotpauth://totp/...?secret=JBSW...L'app autenticatore lo leggeA9, A10L'app autenticatore lo leggeA9, A10Decodifica l'URIA8
eSIMLPA:1$rsp.example.com$K2-LM...iOS 17.4+ la attivaA4Android 13+ la attivaUDecodifica l'URIQ
Bitcoin (BIP-21)bitcoin:1A1zP1eP...Si apre l'app portafoglioQSi apre l'app portafoglioQDecodifica l'URIQ
SEPA (EPC)BCD header + name + IBAN + amountSolo stringa grezzaQSolo stringa grezzaQDecodifica la stringa grezzaQ
Swiss QR-billSPC header + IBAN + address + amountSolo stringa grezzaQSolo stringa grezzaQDecodifica la stringa grezzaQ
Micro QRCompact payloadNessuna decodificaV, UNessuna decodificaGLettori industrialiZ
rMQRRectangular payloadNessuna decodificaUNessuna decodificaGFirmware più recenti Zebra, Scandit e CognexZ
GS1 Digital Linkhttps://id.gs1.org/01/09506000134352Apre l'URLQApre l'URLQIl firmware POS analizza gli AIQ
AztecArbitrary payloadNessuna decodificaA2Google Lens, alcune variantiA7NativoA8
Data MatrixArbitrary payloadNessuna decodificaA2Google LensA6NativoA8
PDF417AAMVA or arbitraryNessuna decodificaA2Google Lens, incostanteA7NativoA8
AAMVA driver license@\n\x1e\rANSI 636014100002DL...iOS 17+, flusso compatibile con le patentiA3Solo app compatibili con le patentiUNativoA8
EAN-13 / UPC-A0012345678905Nessuna decodificaApGoogle LensGOgni POS retailA8
Code 128ABC-123Nessuna decodificaApGoogle LensGNativoA8

Come leggere i simboli

Prova

Cosa significa "risultato di scansione atteso"

Note sulla metodologia

Registro di attestazione della flotta scanner

Ogni test manuale su dispositivo, datato. Le righe vengono aggiunte quando acquisiamo hardware o un utente segnala una discrepanza; un risultato non cambia mai silenziosamente, riceve una nuova riga.

#DeviceOS / appCorpus sliceResultDateNotes
A1iPhone 15 ProiOS 18.3, native CameraAll QR fixturespass2026-04-10
A2iPhone 15 ProiOS 18.3, native CameraAztec, PDF417, Data Matrixfail2026-04-10Nessuno decodifica nativamente (previsto, vedi /standards/non-qr-2d/)
A3iPhone 15 ProiOS 18.3, native CameraAAMVA PDF417partial2026-04-10Il flusso compatibile con le patenti di iOS 17+ offre Aggiungi a Wallet; il PDF417 grezzo non viene restituito
A4iPhone 15 ProiOS 18.3, WalleteSIM LPApass2026-04-12Il flusso Aggiungi eSIM si attiva correttamente
A5Pixel 8Android 14, native CameraAll QR fixturespass2026-04-10
A6Pixel 8Android 14, Google LensData Matrixpass2026-04-10
A7Pixel 8Android 14, Google LensAztec, PDF417partial2026-04-10Alcune varianti decodificano; il supporto è incostante
A8Zebra DS8100firmware CAAACS00-002-R06All 2D + 1D fixturespass2026-04-11Imager industriale, riferimento canonico
A9Google Authenticatorv7.0+ (iOS/Android)TOTP, HOTPpass2026-04-12Solo SHA-1, 6 cifre (ignora i parametri algoritmo/cifre secondo il profilo de facto di Google)
A101Passwordv8 (iOS/Android/macOS)TOTP, HOTPpass2026-04-12Supporto RFC completo incl. SHA-256, SHA-512, 8 cifre

Prossimamente

Vedi anche

Corpus ultimo testato in regressione il 2026-04-18. Dispositivi scanner verificati: iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.