Generatore di codici a barre Code 39
Crea codici a barre Code 39 per l’identificazione industriale, la produzione, la gestione delle scorte e il tracciamento dei beni.
Generatore di codici a barre e matrici
Anteprima in tempo reale di Studio
Generatore di numeri seriali in serie Code 128
Genera codici a barre Code 128 sequenziali per SKU di magazzino, etichette per cespiti, etichette di inventario e altri identificativi interni.
Generatore di codici a barre Code 39
Risposta rapida: Code 39 è un codice a barre lineare autoverificante a lunghezza variabile definito in ISO/IEC 16388:2023. È noto anche con i nomi Code 3 of 9 e Alpha39. La simbologia codifica 43 caratteri: lettere maiuscole A–Z, cifre 0–9 e i sette caratteri speciali spazio, trattino, punto, segno del dollaro, slash, segno più e segno percentuale. Una cifra di controllo è opzionale.
What a Code 39 barcode is
Code 39 is a one-dimensional, discrete, self-checking barcode symbology defined in ISO/IEC 16388:2023 (third edition). It is also known as Code 3 of 9 and Alpha39. The name "3 of 9" refers to its structure: each character is represented by 9 elements — 5 bars and 4 spaces — of which exactly 3 are wide.
Il carattere asterisco (*) funge sia da delimitatore iniziale sia da delimitatore finale. L’asterisco non viene trasmesso come dato: i decodificatori lo eliminano, ma deve essere presente in qualsiasi simbolo Code 39 valido. Per questo motivo, l’asterisco non può essere utilizzato come carattere di dati.
Code 39 è autocontrollante. La struttura degli elementi «3 su 9» fa sì che un singolo difetto di stampa, se allarga o restringe un elemento a sufficienza da modificarne la classificazione da stretto a largo o viceversa, produca un carattere con un numero errato di elementi larghi, che il decodificatore rileva come non valido. Questa proprietà di autocontrollo è il motivo pratico per cui Code 39 è rimasto in uso per decenni senza una cifra di controllo obbligatoria in molte applicazioni.
Specifiche tecniche di Code 39
Character set and structure
| Parametro | Valore | Fonte |
|---|---|---|
| Nome completo | Code 39 (also Code 3 of 9, Alpha39) | ISO/IEC 16388:2023 |
| ISO/IEC standard | ISO/IEC 16388:2023 (third edition) | iso.org/standard/77799.html |
| Code type | Discrete (intercharacter gaps between characters) | ISO/IEC 16388:2023 §4.1(b) |
| Native character set | 43 characters: A–Z (26), 0–9 (10), space, -, ., $, /, +, % (7) | ISO/IEC 16388:2023 §4.1(a) |
| Extended ASCII (Full ASCII Code 39) | All 128 ASCII characters via two-character shift sequences using $, /, +, % | ISO/IEC 16388:2023 §4.1(a) |
| Symbol length | Variabile | ISO/IEC 16388:2023 §4.1(e) |
| Elements per character | 9 (5 bars + 4 spaces): exactly 3 wide, 6 narrow | ISO/IEC 16388:2023 §4.1(c) |
| Start/stop character | Asterisk (*) — not transmitted by decoder | ISO/IEC 16388:2023 §4.3.3 |
| Self-checking | Sì | ISO/IEC 16388:2023 §4.1(d) |
| Wide-to-narrow ratio | 2.0:1 to 3.0:1 (nominal); 1.8:1 to 3.4:1 tolerance | ISO/IEC 16388:1999 §4.4(b); ISO/IEC 16388:2023 |
Check character
| Parametro | Valore | Fonte |
|---|---|---|
| Check character | Optional — modulo-43 | ISO/IEC 16388:2023 Annex A |
| Algorithm | Sum of all data character values (A=10, B=11, ... Z=35, 0=0, ... 9=9, special chars each assigned unique values 0–42); divide sum by 43; remainder maps to Code 39 character | ISO/IEC 16388:2023 Annex A |
| Transmitted | Yes — the check character is included in the symbol and may be transmitted | ISO/IEC 16388:2023 |
Print requirements
| Parametro | Valore | Fonte |
|---|---|---|
| Quiet zones | Minimum 10X on each side | ISO/IEC 16388:1999 §4.4(d) |
| Min bar height (manual scan) | 5.0 mm or 15% of symbol width excluding quiet zones, whichever is greater | ISO/IEC 16388:1999 §4.4(e) |
When to use a Code 39 barcode
LOGMARS del Dipartimento della Difesa degli Stati Uniti. Lo standard del DoD Logistics Applications of Automated Marking and Reading Symbols (LOGMARS), basato su MIL-STD-1189B, specifica l’uso di Code 39 per contrassegnare parti, componenti e assiemi nella filiera di approvvigionamento della difesa statunitense. Se sei un appaltatore della difesa tenuto ad applicare etichette conformi a LOGMARS, l’uso di Code 39 è obbligatorio. In questo contesto, usa esattamente Code 39.
Etichettatura di componenti automobilistici e relativa al VIN. Da decenni, i principali produttori automobilistici e i loro fornitori di primo livello utilizzano Code 39 per le etichette di identificazione dei componenti. In alcuni contesti, gli standard AIAG e le specifiche di produzione automobilistica fanno ancora riferimento a Code 39 per il tracciamento interno dei componenti, anche se Code 128 è ormai disponibile.
Tracciamento di beni e apparecchiature sanitarie (sistemi legacy). Alcuni sistemi ospedalieri per il tracciamento dei beni e delle apparecchiature mediche, installati prima che Code 128 diventasse predominante, utilizzano lettori Code 39. Se il sistema installato non può essere riconfigurato, le etichette Code 39 restano l’unica opzione compatibile.
Applicazioni governative e industriali che richiedono semplicità. Code 39 è autocontrollante e non richiede una cifra di controllo obbligatoria; il suo rapporto tra elementi larghi e stretti lo rende tollerante alle imperfezioni della stampa a matrice di punti e a impatto, e praticamente tutti i lettori di codici a barre mai venduti sono in grado di decodificarlo. Queste caratteristiche ne hanno fatto il codice a barre industriale dominante per due decenni e continuano a renderlo una scelta valida negli ambienti controllati in cui è ancora in uso una base installata di questo tipo.
Quando NON usare Code 39 per nuove installazioni. Code 39 non è la scelta più moderna. Il suo set di 43 caratteri non include le lettere minuscole. La sua struttura discreta — ogni carattere è separato da uno spazio intercarattere — lo rende fisicamente più lungo di Code 128 a parità di dati. Una stringa numerica di 10 cifre codificata con Code 128 Code Set C occupa circa la metà dello spazio rispetto alla stessa stringa in Code 39. Per qualsiasi nuovo sistema di etichettatura in magazzino, per le spedizioni o per uso generico, usa Code 128.
Requisiti di stampa per Code 39
Dimensione X. Usa la dimensione X più grande consentita dallo spazio disponibile sull’etichetta. L’interspazio discreto tra i caratteri di Code 39 aggiunge lunghezza fisica oltre a quella dei moduli dei caratteri, quindi il simbolo è già più lungo di un codice a barre continuo che codifica dati equivalenti. Una dimensione X maggiore migliora l’affidabilità della scansione, soprattutto su supporti stampati a trasferimento termico o a impatto.
Wide-to-narrow ratio. ISO/IEC 16388:2023 specifies a nominal ratio of 2.0:1 to 3.0:1, with tolerance from 1.8:1 to 3.4:1. The ratio must be consistent throughout the symbol. A ratio below 1.8:1 makes wide and narrow elements ambiguous. A ratio above 3.4:1 produces needlessly long symbols.
Zone di quiete. Il simbolo deve avere una zona libera di almeno 10X sia a sinistra sia a destra. La zona di quiete è prescritta dallo standard, non è facoltativa. Qualsiasi elemento — bordo, codice a barre adiacente o testo — all’interno della zona di quiete può causare un’identificazione errata del carattere di inizio o di arresto.
Bar height. The minimum bar height is 5.0 mm or 15 percent of the symbol width excluding quiet zones, whichever is greater, per ISO/IEC 16388:1999 §4.4(e). Taller bars improve tolerance for scanner tilt and label curl.
Supporto. La tolleranza del rapporto tra barre larghe e strette del Code 39 lo rende più affidabile su supporti ruvidi, come il cartone ondulato e i tessuti ruvidi, rispetto ai codici con rapporti più ridotti. Storicamente, questo è stato uno dei motivi della sua adozione negli ambienti industriali. Ciò nonostante, una stampa ad alto contrasto su un supporto liscio offre i risultati più affidabili.
Risoluzione dei problemi: perché il tuo codice a barre Code 39 non viene letto
Lettera minuscola nei dati. Il set di caratteri nativo del Code 39 contiene solo lettere maiuscole. Per codificare le lettere minuscole è necessaria la codifica shift Full ASCII Code 39. Se il generatore accetta i dati inseriti ma il lettore non riesce a leggerli, verifica che sia configurato per Full ASCII Code 39: i decoder Code 39 standard rifiutano le sequenze shift perché non valide.
Asterisco nei dati. L’asterisco è il delimitatore di inizio e fine per Code 39 e non può essere usato come carattere dei dati. Qualsiasi input contenente un asterisco genererà un simbolo non valido.
Rapporto tra barre larghe e strette alterato dal ridimensionamento. Se l’immagine PNG esportata viene stampata a una risoluzione che modifica il numero di pixel del modulo, il rapporto tra barre larghe e strette potrebbe non rientrare nella tolleranza da 1.8:1 a 3.4:1. Stampare alle dimensioni esatte in pixel previste oppure usare l’esportazione SVG e ridimensionare uniformemente in fase di stampa.
Zona di rispetto non rispettata. Testo, bordi o etichette adiacenti posizionati entro 10X dalle estremità del simbolo possono causare errori nel rilevamento dei caratteri di inizio e fine. Lasciare la zona di rispetto completa di 10X su entrambi i lati.
Cifra di controllo non corrispondente. Se la configurazione del sistema richiede una cifra di controllo modulo 43 e l’etichetta è stata stampata senza, lo scanner rifiuterà simboli che sembrano validi. Al contrario, se la cifra di controllo è inclusa e lo scanner è configurato per non verificarla, il carattere di controllo apparirà nell’output decodificato come carattere aggiuntivo. Impostare la cifra di controllo allo stesso modo nel generatore e nello scanner.
Altezza delle barre troppo ridotta. Un’altezza delle barre inferiore a 5 mm o al 15% della larghezza del simbolo causa errori di scansione quando, durante la scansione manuale, il raggio laser passa sotto o sopra le barre. Ristampare con barre più alte.
Code 39 versus Code 128
Code 39 e Code 128 sono entrambi codici a barre lineari alfanumerici. Code 39 è stato sviluppato prima di Code 128 ed è più limitato sotto ogni aspetto tecnico. Il confronto è pertinente perché molti utenti che cercano Code 39 gestiscono sistemi legacy e dovrebbero conoscere l’alternativa da considerare per i progetti futuri.
| Code 39 | Code 128 | |
|---|---|---|
| Standard | ISO/IEC 16388:2023 | ISO/IEC 15417:2007 |
| Set di caratteri | 43 characters (uppercase only natively) | All 128 ASCII (uppercase, lowercase, digits, control chars) |
| Lowercase | Via Full ASCII shift sequences only | Natively in Code Set B |
| Check character | Optional modulo-43 | Mandatory modulo-103 (auto-calculated) |
| Symbol type | Discrete (intercharacter gaps) | Continuous |
| Physical length | Longer for equivalent data | Shorter — Code Set C halves numeric length |
| Self-checking | Sì | Yes (via check character) |
| Active mandates | US DoD LOGMARS, some automotive | Warehouse, shipping, GS1-128 |
| Recommendation for new systems | No — use Code 128 | Sì |
Code 39 non è obsoleto: è ancora richiesto espressamente da LOGMARS e da alcune specifiche del settore automobilistico. Tuttavia, se state realizzando un nuovo sistema di etichettatura e nessuna normativa impone l’uso di Code 39, la scelta corretta è Code 128.
Usare questo codice a barre in Bahrein e nelle catene di fornitura internazionali
I rivenditori, gli importatori, i produttori e i team logistici del Bahrein dovrebbero verificare che gli identificativi siano conformi alle regole dei propri partner commerciali. I GTIN per la vendita al dettaglio devono provenire dall’organizzazione emittente competente; un generatore crea la grafica, ma non assegna la titolarità. I riferimenti interni per scorte e beni possono usare valori definiti dall’organizzazione, se il sistema ricevente li supporta.
Usa l’inglese britannico nelle istruzioni operative quando è in linea con lo stile della tua organizzazione e aggiungi istruzioni in arabo per i team che ne hanno bisogno. Stampa nelle effettive condizioni d’uso. Il caldo, la luce intensa, la polvere, le confezioni curve e i laminati riflettenti del Bahrain possono evidenziare problemi di contrasto o di superficie invisibili sul monitor.
Mantieni libere le zone di silenzio, evita di deformare l’immagine e preferisci barre scure su uno sfondo chiaro uniforme. Scansiona campioni all’inizio, a metà e alla fine della tiratura. Per gli impieghi regolamentati nella vendita al dettaglio, in ambito sanitario, editoriale o logistico, verifica le specifiche aggiornate di GS1, dell’agenzia ISBN, del cliente o del settore prima di approvare la produzione.
Prima di stampare
- Simbolologia corretta selezionata
- Proprietà dell'identificatore confermata
- Cifra di controllo verificata
- Zone tranquille tenute libere
- Forte contrasto della barra
- Rapporto d'aspetto invariato
- SVG o PNG ad alta risoluzione
- Test scanner di produzione
Domande frequenti
Apri una domanda per leggere una risposta tecnica concisa.
01Che cos'è un codice a barre Code 39?+
Code 39 è un codice a barre lineare autoverificante a lunghezza variabile definito nella norma ISO/IEC 16388:2023. È anche chiamato Code 3 of 9 e Alpha39. Ogni carattere è composto da 9 elementi — 5 barre e 4 spazi — dei quali esattamente 3 sono larghi. L'insieme di caratteri nativo comprende 43 caratteri: lettere maiuscole A–Z, cifre 0–9 e sette caratteri speciali. L'asterisco funge da delimitatore obbligatorio di inizio e fine.
02Quali caratteri può codificare Code 39?+
Il set nativo di 43 caratteri del Code 39 copre le lettere maiuscole A–Z (26 lettere), le cifre 0–9 (10) e sette caratteri speciali: spazio, trattino, punto, simbolo del dollaro, slash, segno più e segno percentuale. Il Code 39 ASCII completo estende la copertura a tutti i 128 caratteri ASCII usando sequenze di due caratteri di shift, ma richiede scanner configurati per supportare la modalità Full ASCII.
03Il Code 39 è ancora usato?+
Sì. Lo standard LOGMARS del Dipartimento della Difesa degli Stati Uniti (basato su MIL-STD-1189B) impone Code 39 per la marcatura delle parti nella catena di approvvigionamento della difesa. I produttori automotive e i loro fornitori utilizzano Code 39 nei contesti di tracciamento delle parti. Molti sistemi legacy di magazzino e di gestione degli asset sanitari continuano inoltre a usarlo. Tuttavia, per qualsiasi nuova implementazione senza un mandato specifico, Code 128 è la simbologia preferita.
04Qual è la differenza tra Code 39 e Code 128?+
Code 128 (ISO/IEC 15417:2007) codifica tutti i 128 caratteri ASCII incluse le lettere minuscole e produce simboli più brevi per dati equivalenti. Code 128 Code Set C codifica le coppie di cifre in un unico codice, riducendo approssimativamente alla metà la lunghezza fisica delle stringhe numeriche. Code 39 (ISO/IEC 16388:2023) codifica nativamente solo 43 caratteri, non supporta le minuscole ed è più lungo per dati equivalenti. Usare Code 39 solo quando una normativa o un sistema legacy lo richiede.
05Il Code 39 ha una cifra di controllo?+
Il check digit del Code 39 è opzionale. L'allegato A di ISO/IEC 16388:2023 definisce un algoritmo modulo-43: assegnare a ogni carattere un valore da 0 a 42, sommare tutti i valori, dividere per 43 e il resto corrisponde al carattere di controllo. Alcune applicazioni includono il check digit; altre si affidano esclusivamente alla struttura di auto-verifica del Code 39. Allineare l'impostazione del check digit tra il generatore di etichette e la configurazione dello scanner.
06Che cos'è il codice a barre LOGMARS?+
LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) è lo standard del Dipartimento della Difesa degli Stati Uniti per l'etichettatura a codice a barre nella catena di approvvigionamento della difesa, basato su MIL-STD-1189B. LOGMARS specifica Code 39 come la simbologia a codice a barre richiesta per pezzi, componenti e assemblaggi. I contraenti della difesa che consegnano al DoD devono applicare etichette Code 39 conformi a LOGMARS agli articoli specificati.
07Il Code 39 può codificare lettere minuscole?+
Non nativamente. Il set standard di 43 caratteri include solo lettere maiuscole. Il Full ASCII Code 39 utilizza sequenze di shift a due caratteri per rappresentare tutti i 128 caratteri ASCII, comprese le minuscole, ma ciò richiede scanner configurati esplicitamente per la modalità Full ASCII. I decoder per Standard Code 39 non interpreteranno correttamente le sequenze di shift del Full ASCII.
08Qual è il rapporto wide-to-narrow nel Code 39?+
ISO/IEC 16388:2023 specifica un rapporto nominale wide-to-narrow di 2,0:1 fino a 3,0:1. La banda di tolleranza è 1,8:1 fino a 3,4:1. Un rapporto inferiore a 1,8:1 rende difficile distinguere gli elementi wide da quelli narrow. La scalatura non uniforme dell’immagine del codice a barre può modificare il rapporto e portarlo al di fuori della tolleranza, causando fallimenti nella scansione.
09Che cos'è il Full ASCII Code 39?+
Full ASCII Code 39 è un’estensione di Code 39 che codifica tutti i 128 caratteri ASCII utilizzando sequenze di due caratteri. I quattro caratteri di shift — $, /, %, + — si combinano con un altro carattere Code 39 per rappresentare gli 85 caratteri ASCII non inclusi nel set nativo di 43 caratteri. Full ASCII Code 39 è definito nella norma ISO/IEC 16388:2023. I scanner devono essere configurati esplicitamente per decodificare le sequenze Full ASCII; la modalità Code 39 standard le leggerà in modo errato.
10Ho bisogno di una licenza GS1 per usare Code 39?+
No. Code 39 codifica dati alfanumerici arbitrari senza alcun requisito di licenza. È pienamente utilizzabile per etichettatura interna — marcatura dei pezzi, tag degli asset, etichette dell’inventario — senza registrazione o approvazione. Una licenza GS1 è richiesta solo quando i dati codificati includono un GTIN con licenza GS1 per la vendita al dettaglio o per l’uso nella supply chain GS1.