Tabella dei caratteri di controllo ASCII per lettori di codici a barre
I caratteri di controllo ASCII sono i valori da 0 a 31 più il 127: non si stampano, ma comandano qualcosa. Per un lettore di codici a barre i più importanti sono CR (13, Invio), HT (9, Tab), LF (10), GS (29, separatore GS1), RS (30) ed EOT (4). Qui trovi la tabella completa con valori decimali ed esadecimali, combinazione Ctrl tradizionale e uso pratico.
Come leggere la tabella
- Dec e Hex: il valore del carattere. I manuali dei lettori chiedono di solito il valore esadecimale quando imposti un prefisso o un suffisso con la tabella dei codici numerici; alcuni modelli usano il decimale o un codice interno. Controlla il tuo.
- Ctrl: la combinazione tradizionale da terminale. Il carattere con valore n corrisponde a Ctrl più il carattere con valore n+64 (13 + 64 = 77, cioè M: CR è Ctrl+M). Molti lettori, in modalità tastiera, usano proprio questa combinazione per trasmettere i caratteri di controllo che non hanno un tasto dedicato.
- Nome e uso: nome italiano e cosa succede in pratica con un lettore o un PC.
Tabella completa ASCII 0-31 e 127
| Dec | Hex | Sigla | Ctrl | Nome e uso pratico |
|---|---|---|---|---|
| 0 | 00 | NUL | Ctrl+@ | Carattere nullo. Nessuna funzione visibile; in molti linguaggi indica la fine di una stringa, quindi può troncare i dati in software poco robusti. |
| 1 | 01 | SOH | Ctrl+A | Inizio intestazione. Usato in alcuni protocolli seriali; come tasto, Ctrl+A seleziona tutto in molti programmi. |
| 2 | 02 | STX | Ctrl+B | Inizio testo. Prefisso classico nelle integrazioni seriali per marcare l'inizio di un messaggio. |
| 3 | 03 | ETX | Ctrl+C | Fine testo. Suffisso classico nelle integrazioni seriali; come tasto, Ctrl+C copia. |
| 4 | 04 | EOT | Ctrl+D | Fine trasmissione. Chiude i messaggi nel formato ISO/IEC 15434 di alcuni codici 2D; come tasto, nei browser Ctrl+D aggiunge la pagina ai preferiti. |
| 5 | 05 | ENQ | Ctrl+E | Richiesta. Interrogazione di stato in vecchi protocolli seriali. |
| 6 | 06 | ACK | Ctrl+F | Conferma positiva. In alcune configurazioni seriali è il PC a inviarlo al lettore per confermare la ricezione. |
| 7 | 07 | BEL | Ctrl+G | Campanello. Su terminali seriali produce un segnale acustico. |
| 8 | 08 | BS | Ctrl+H | Backspace (ritorno di un carattere). In modalità tastiera di solito diventa il tasto Backspace e cancella il carattere precedente. |
| 9 | 09 | HT | Ctrl+I | Tabulazione orizzontale. Diventa il tasto Tab: passa al campo o alla cella successiva. Suffisso comune. |
| 10 | 0A | LF | Ctrl+J | Avanzamento riga. Fine riga nei sistemi Unix e in molti protocolli; in modalità tastiera può diventare Invio o Ctrl+J a seconda del lettore. |
| 11 | 0B | VT | Ctrl+K | Tabulazione verticale. Praticamente inutilizzata con i lettori. |
| 12 | 0C | FF | Ctrl+L | Avanzamento pagina. Nuova pagina per le stampanti; nessun uso tipico con i lettori. |
| 13 | 0D | CR | Ctrl+M | Ritorno carrello. In modalità tastiera diventa il tasto Invio. È il suffisso più usato in assoluto. |
| 14 | 0E | SO | Ctrl+N | Shift out. Cambio di set di caratteri in vecchi terminali. |
| 15 | 0F | SI | Ctrl+O | Shift in. Ritorno al set di caratteri standard. |
| 16 | 10 | DLE | Ctrl+P | Escape del collegamento dati. Usato in protocolli seriali binari. |
| 17 | 11 | DC1 | Ctrl+Q | Controllo dispositivo 1 (XON). Riprende la trasmissione con il controllo di flusso software. |
| 18 | 12 | DC2 | Ctrl+R | Controllo dispositivo 2. Uso specifico del dispositivo. |
| 19 | 13 | DC3 | Ctrl+S | Controllo dispositivo 3 (XOFF). Sospende la trasmissione con il controllo di flusso software; come tasto, Ctrl+S salva in molti programmi. |
| 20 | 14 | DC4 | Ctrl+T | Controllo dispositivo 4. Uso specifico del dispositivo. |
| 21 | 15 | NAK | Ctrl+U | Conferma negativa. Nelle configurazioni seriali con conferma, chiede al lettore di ritrasmettere. |
| 22 | 16 | SYN | Ctrl+V | Sincronizzazione. Come tasto, Ctrl+V incolla: un SYN trasmesso come combinazione può incollare gli appunti nel campo. |
| 23 | 17 | ETB | Ctrl+W | Fine blocco di trasmissione. Come tasto, nei browser Ctrl+W chiude la scheda. |
| 24 | 18 | CAN | Ctrl+X | Annulla. Come tasto, Ctrl+X taglia. |
| 25 | 19 | EM | Ctrl+Y | Fine supporto. Nessun uso tipico. |
| 26 | 1A | SUB | Ctrl+Z | Sostituzione. In vecchi file indicava la fine; come tasto, Ctrl+Z annulla l'ultima azione. |
| 27 | 1B | ESC | Ctrl+[ | Escape. In modalità tastiera diventa di solito il tasto Esc, che può chiudere finestre o annullare l'inserimento in corso. |
| 28 | 1C | FS | Ctrl+\ | Separatore di file. Raro nei codici a barre. |
| 29 | 1D | GS | Ctrl+] | Separatore di gruppo. Rappresenta FNC1 come separatore dei campi GS1 in GS1-128, GS1 DataMatrix e GS1 QR. |
| 30 | 1E | RS | Ctrl+^ | Separatore di record. Usato nel formato ISO/IEC 15434 di alcuni codici 2D industriali. |
| 31 | 1F | US | Ctrl+_ | Separatore di unità. Raro nei codici a barre. |
| 127 | 7F | DEL | (nessuna) | Cancella. In modalità tastiera alcuni lettori lo trasmettono come tasto Canc. |
Le combinazioni Ctrl indicate sono la convenzione storica dei terminali. Il comportamento reale del tuo lettore in modalità tastiera (tasto dedicato, combinazione Ctrl, tasto funzione o nessuna trasmissione) dipende dal modello e da opzioni che il manuale chiama in vari modi, per esempio "Control Character Output" o "Function Code". Verifica sempre sulla guida.
Come appaiono in modalità tastiera HID
Una tastiera USB invia tasti, non caratteri. Per i caratteri di controllo il lettore deve quindi scegliere quale tasto o combinazione premere. Le situazioni che incontri più spesso:
CR (13): il tasto Invio
Diventa quasi sempre il tasto Invio della tastiera principale. Alcuni lettori permettono di usare l'Invio del tastierino numerico, che alcune applicazioni trattano in modo diverso. È il suffisso giusto per casse, gestionali e campi di ricerca: vedi aggiungere Invio o Tab dopo la lettura.
LF (10): attenzione al doppio Invio
Alcuni lettori trasmettono LF come Invio, altri come Ctrl+J, altri lo ignorano. Se hai impostato un suffisso CR+LF (tipico di chi copia la configurazione da un'integrazione seriale), in modalità tastiera puoi ritrovarti con due Invio: in Excel il cursore salta una riga, in un modulo web il secondo Invio può inviare il form vuoto. Ctrl+J in alcuni browser apre l'elenco dei download. In modalità tastiera usa solo CR.
HT (9): il tasto Tab
Diventa il tasto Tab: passa al campo successivo, alla cella a destra in un foglio di calcolo. Se un lettore lo trasmette come Ctrl+I, in molti editor di testo attiva invece il corsivo: segno che è attiva una modalità di trasmissione Ctrl.
GS (29): il separatore che sparisce
Non esiste un tasto GS. Il lettore lo omette, lo trasmette come Ctrl+] (su un PC con layout italiano corrisponde al tasto del +, con effetti imprevedibili come lo zoom nel browser) o, in modalità ALT, come Alt+29, che molte applicazioni Windows mostrano come simbolo grafico. Soluzioni e mappatura a un carattere visibile in carattere GS e FNC1.
RS (30) ed EOT (4): i messaggi ISO/IEC 15434
Compaiono nei codici 2D con intestazione [)>. RS come Ctrl+^ richiede Shift sulla tastiera USA ed è di solito ignorato dalle applicazioni; EOT come Ctrl+D può aggiungere un preferito nel browser o attivare altre scorciatoie. Per questi dati usa un'interfaccia seriale: vedi USB HID o porta COM virtuale.
In modalità seriale o COM virtuale
Con una porta COM, reale o virtuale, i caratteri di controllo arrivano come byte, senza alcuna conversione in tasti. È il motivo per cui STX, ETX, ACK e NAK sono comuni nelle integrazioni seriali e nei lettori seriali RS232, mentre in modalità tastiera si usano quasi solo CR e Tab.
Come verificare quali caratteri arrivano
Leggi un codice nel test del lettore: mostra ogni carattere ricevuto con il suo valore, compresi prefissi e suffissi invisibili. Esempio di uscita con prefisso STX e suffisso CR+LF via porta seriale:
HEX: 02 38 30 30 31 32 33 34 35 36 37 38 39 37 0D 0A TXT: <STX>8001234567897<CR><LF>
Per creare codici di prova con contenuti specifici usa il generatore di codici a barre.
Domande frequenti
Invio è CR o LF?
In modalità tastiera il tasto Invio corrisponde a CR (13, esadecimale 0D). Windows nei file di testo usa la coppia CR+LF per andare a capo, ma il tasto è uno solo.
Lo spazio è un carattere di controllo?
No, lo spazio (32, esadecimale 20) è il primo carattere stampabile. Come suffisso è poco consigliabile perché invisibile e spesso rimosso dai software.
Perché il manuale indica i caratteri come "0D" e non "13"?
Perché molti lettori chiedono il valore esadecimale tramite la tabella dei codici numerici, che include le lettere A-F. Il valore è lo stesso, cambia solo la base.
Fonti e riferimenti
- ISO/IEC 646 e ANSI X3.4 (ASCII), insieme di caratteri di controllo C0, iso.org.
- ISO/IEC 15434, sintassi per i messaggi nei supporti di cattura automatica dei dati.
- GS1 General Specifications (FNC1 e separatore GS), gs1.org.
- USB HID Usage Tables, pagina Keyboard/Keypad (USB Implementers Forum).
- Product Reference Guide dei produttori, tabelle "ASCII Character Set" e "Function Codes": Honeywell, Zebra, Datalogic.