Outil pour decoder/encoder des code barres 128, une norme de code-barres permettant de coder des chiffres et des lettres, utilisée internationallement par l'EAN-128 (ou GS1-128).
Code Barres 128 - dCode
Catégorie(s) : Codage de Caractères, Traitement d'Image
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Le Code Barres 128 est un type de code à barres permettant d'encoder des données alphanumériques sous forme de bandes noires et d'espaces blancs de largeur variable.
Il est largement utilisé en logistique, transport et gestion d'inventaire en raison de sa compacité et de sa robustesse.
Une application industrielle très répandue est le standard GS1-128 (anciennement EAN-128), qui utilise la symbologie Code 128 pour structurer des données logistiques normalisées (identifiants produits, numéros de lot, etc.)
Un Code Barres 128 est constitué d'une suite de groupes de 3 barres noires et 3 espaces blancs alternés de largeur variables (entre 1 et 4 unités de large).
Le standard décrit 3 tables de codages : le code 128A, le code 128B et le code 128C. Grâce à ces trois jeux de codes, il permet de représenter l'ensemble des caractères ASCII 0 à 127 ainsi que des fonctions spéciales (FNC1 à FNC4).
Le code-barres 128 commence par une suite de traits indiquant Début et se termine par Fin, entre les deux, les caractères du message à chiffrer chacun représenté par 6 barres (3 noires et 3 blanches) de longueur 11 unités.
Pour coder une chaine de caractères :
1 - Comencer par le symbole de Début correspondant à la table de codage utilisée.
2 - Convertir chaque caractère selon la table de correspondance et insérer les traits correspondants
3 - Calculer la clé de contrôle (voir-ci après) et l'insérer à la suite
4 - Terminer par le symbole Stop
Exemple : Pour coder DCODE en 128b, encoder Début B, D, C, O, D, E, Clé, Fin soit les valeurs 104,36,35,47,36,37,62,106 soit des barres alternées de largeur 211214,112313,131321,133121,112313,132113,431111,2331112
Le décodage consiste à lire les largeurs des barres et espaces. Ce travail se décompose en plusieurs étapes.
1 - Identifier le symbole de départ (Début A, B ou C)
2 - Découper la séquence en blocs de 6 barres (de largeur 11 unités)
3 - Convertir chaque motif en valeur numérique (0 à 106)
4 - Vérifier la clé de controle.
5 - Traduire les valeurs selon le jeu de codes actif.
Exemple : Un code barre a pour message brut 2112141412211313211341111412211122141214212331112
211214 correspond au code Début de la norme 128B. 141221 correspond au caractère d, puis 131321 pour C, etc. Le message contenu dans le code barre est dCode.
La clé de contrôle est calculée en effectuant la somme de la valeur du symbole de départ avec chaque valeur encodée dans le code-barres multipliée par sa position, le tout modulo 103.
Exemple : Avec DCODE et le jeu de codage 128-B, Début B = 104, D = 36, C = 35, O = 47, D = 36, E = 37
Le calcul de la somme de controle est 104 + 1 × 36 + 2 × 35 + 3 × 47 + 4 × 36 + 5 × 37 = 680 et 680 mod 103 = 62. La valeur 62 correspond au symbole ^ en jeu B.
Lors d'une lecture d'un code barres, si l'égalité n'est pas vérifiée, le code est invalide. Le générateur dCode pourra cependant s'en affranchir si besoin.
Le code barre a une forme graphique (des traits noirs et blancs similaires aux rayures d'un zèbre) mais peut aussi être représenté par un équivalent binaire (des 0 pour du vide et des 1 pour des barres blanches) ou encore un code écrit en base 4 (1,2,3 et 4 pour la taille de la barre, alternant noir et blanc).
Le code-barre peut avoir une longueur variable. Il commence (normalement) par le caractère Début et se termine par le caractère Fin (voir table).
Pour coder un message de N caractères, le nombre d'unités nécessaires (entre la première et la dernière barre noire) est 11 × (N + 2) + 13 unités
Les notions de lecteurs optiques (laser), scanettes, ou de logiciels/applications mobiles de code à barres sont des indices.
La table de codage 128A comprend les caractères ASCII de 00 à 95.
La table de codage 128B comprend les caractères ASCII de 32 à 127.
La table de codage 128c comprend des caractères numériques de 00 à 99.
| id | bandes | binaire | 128A | 128B | 128C |
|---|---|---|---|---|---|
| 0 | 212222 | 11011001100 | Space | Space | 00 |
| 1 | 222122 | 11001101100 | ! | ! | 01 |
| 2 | 222221 | 11001100110 | " | " | 02 |
| 3 | 121223 | 10010011000 | # | # | 03 |
| 4 | 121322 | 10010001100 | $ | $ | 04 |
| 5 | 131222 | 10001001100 | % | % | 05 |
| 6 | 122213 | 10011001000 | & | & | 06 |
| 7 | 122312 | 10011000100 | 07 | ||
| 8 | 132212 | 10001100100 | ( | ( | 08 |
| 9 | 221213 | 11001001000 | ) | ) | 09 |
| 10 | 221312 | 11001000100 | * | * | 10 |
| 11 | 231212 | 11000100100 | + | + | 11 |
| 12 | 112232 | 10110011100 | , | , | 12 |
| 13 | 122132 | 10011011100 | - | - | 13 |
| 14 | 122231 | 10011001110 | . | . | 14 |
| 15 | 113222 | 10111001100 | / | / | 15 |
| 16 | 123122 | 10011101100 | 0 | 0 | 16 |
| 17 | 123221 | 10011100110 | 1 | 1 | 17 |
| 18 | 223211 | 11001110010 | 2 | 2 | 18 |
| 19 | 221132 | 11001011100 | 3 | 3 | 19 |
| 20 | 221231 | 11001001110 | 4 | 4 | 20 |
| 21 | 213212 | 11011100100 | 5 | 5 | 21 |
| 22 | 223112 | 11001110100 | 6 | 6 | 22 |
| 23 | 312131 | 11101101110 | 7 | 7 | 23 |
| 24 | 311222 | 11101001100 | 8 | 8 | 24 |
| 25 | 321122 | 11100101100 | 9 | 9 | 25 |
| 26 | 321221 | 11100100110 | : | : | 26 |
| 27 | 312212 | 11101100100 | ; | ; | 27 |
| 28 | 322112 | 11100110100 | < | < | 28 |
| 29 | 322211 | 11100110010 | = | = | 29 |
| 30 | 212123 | 11011011000 | > | > | 30 |
| 31 | 212321 | 11011000110 | ? | ? | 31 |
| 32 | 232121 | 11000110110 | @ | @ | 32 |
| 33 | 111323 | 10100011000 | A | A | 33 |
| 34 | 131123 | 10001011000 | B | B | 34 |
| 35 | 131321 | 10001000110 | C | C | 35 |
| 36 | 112313 | 10110001000 | D | D | 36 |
| 37 | 132113 | 10001101000 | E | E | 37 |
| 38 | 132311 | 10001100010 | F | F | 38 |
| 39 | 211313 | 11010001000 | G | G | 39 |
| 40 | 231113 | 11000101000 | H | H | 40 |
| 41 | 231311 | 11000100010 | I | I | 41 |
| 42 | 112133 | 10110111000 | J | J | 42 |
| 43 | 112331 | 10110001110 | K | K | 43 |
| 44 | 132131 | 10001101110 | L | L | 44 |
| 45 | 113123 | 10111011000 | M | M | 45 |
| 46 | 113321 | 10111000110 | N | N | 46 |
| 47 | 133121 | 10001110110 | O | O | 47 |
| 48 | 313121 | 11101110110 | P | P | 48 |
| 49 | 211331 | 11010001110 | Q | Q | 49 |
| 50 | 231131 | 11000101110 | R | R | 50 |
| 51 | 213113 | 11011101000 | S | S | 51 |
| 52 | 213311 | 11011100010 | T | T | 52 |
| 53 | 213131 | 11011101110 | U | U | 53 |
| 54 | 311123 | 11101011000 | V | V | 54 |
| 55 | 311321 | 11101000110 | W | W | 55 |
| 56 | 331121 | 11100010110 | X | X | 56 |
| 57 | 312113 | 11101101000 | Y | Y | 57 |
| 58 | 312311 | 11101100010 | Z | Z | 58 |
| 59 | 332111 | 11100011010 | [ | [ | 59 |
| 60 | 314111 | 11101111010 | \ | \ | 60 |
| 61 | 221411 | 11001000010 | ] | ] | 61 |
| 62 | 431111 | 11110001010 | ^ | ^ | 62 |
| 63 | 111224 | 10100110000 | _ | _ | 63 |
| 64 | 111422 | 10100001100 | NUL | ` | 64 |
| 65 | 121124 | 10010110000 | SOH | a | 65 |
| 66 | 121421 | 10010000110 | STX | b | 66 |
| 67 | 141122 | 10000101100 | ETX | c | 67 |
| 68 | 141221 | 10000100110 | EOT | d | 68 |
| 69 | 112214 | 10110010000 | ENQ | e | 69 |
| 70 | 112412 | 10110000100 | ACK | f | 70 |
| 71 | 122114 | 10011010000 | BEL | g | 71 |
| 72 | 122411 | 10011000010 | BS | h | 72 |
| 73 | 142112 | 10000110100 | HT | i | 73 |
| 74 | 142211 | 10000110010 | LF | j | 74 |
| 75 | 241211 | 11000010010 | VT | k | 75 |
| 76 | 221114 | 11001010000 | FF | l | 76 |
| 77 | 413111 | 11110111010 | CR | m | 77 |
| 78 | 241112 | 11000010100 | SO | n | 78 |
| 79 | 134111 | 10001111010 | SI | o | 79 |
| 80 | 111242 | 10100111100 | DLE | p | 80 |
| 81 | 121142 | 10010111100 | DC1 | q | 81 |
| 82 | 121241 | 10010011110 | DC2 | r | 82 |
| 83 | 114212 | 10111100100 | DC3 | s | 83 |
| 84 | 124112 | 10011110100 | DC4 | t | 84 |
| 85 | 124211 | 10011110010 | NAK | u | 85 |
| 86 | 411212 | 11110100100 | SYN | v | 86 |
| 87 | 421112 | 11110010100 | ETB | w | 87 |
| 88 | 421211 | 11110010010 | CAN | x | 88 |
| 89 | 212141 | 11011011110 | EM | y | 89 |
| 90 | 214121 | 11011110110 | SUB | z | 90 |
| 91 | 412121 | 11110110110 | ESC | { | 91 |
| 92 | 111143 | 10101111000 | FS | | | 92 |
| 93 | 111341 | 10100011110 | GS | } | 93 |
| 94 | 131141 | 10001011110 | RS | ~ | 94 |
| 95 | 114113 | 10111101000 | US | DEL | 95 |
| 96 | 114311 | 10111100010 | FNC3 | FNC3 | 96 |
| 97 | 411113 | 11110101000 | FNC2 | FNC2 | 97 |
| 98 | 411311 | 11110100010 | ShiftB | ShiftA | 98 |
| 99 | 113141 | 10111011110 | Code C | Code C | 99 |
| 100 | 114131 | 10111101110 | Code B | FNC4 | Code B |
| 101 | 311141 | 11101011110 | FNC4 | Code A | Code A |
| 102 | 411131 | 11110101110 | FNC1 | FNC1 | FNC1 |
| 103 | 211412 | 11010000100 | Start A | Start A | Start A |
| 104 | 211214 | 11010010000 | Start B | Start B | Start B |
| 105 | 211232 | 11010011100 | Start C | Start C | Start C |
| 106 | 2331112 | 1100011101011 | Stop | Stop | Stop |
Le symbole Stop comporte 13 modules pour créer une signature asymétrique facilitant la détection de fin de lecture et la synchronisation optique.
Le code 128 possède structurellement 3 variantes 128A, 128B et 128C sui sont des jeux internes de codage.
Le code 128 sert de standard pour les codes GS1-128 (anciennement EAN-128), pour la logistique ou HIBC pour le secteur médical.
D'autres normes de codes barres existent : EAN-13, EAN-8, Code 39, Code 93 avec leur propre structure.
Le Code 128 encode une suite de caractères ou un numéro sans imposer de signification intrinsèque. Le sens dépend entièrement du système qui l'interprète, il peut vouloir dire n'importe quoi : le nombre ou le texte décodé peut être un identifiant produit, un numéro de suivi, une référence interne, etc. Sans accès à la base de données correspondante, il reste une simple séquence de caractères/nombres.
La norme ne fixe pas de limite stricte de longueur. Mais la limite pratique dépend de la résolution d'impression et de la largeur minimale de lecture selon la capacité du lecteur optique.
Un code à barres imprimé ou affiché en trop petit ou trop grand sera inutilisable par la majorités des scanneurs.
dCode propose un fichier de police de caractère (font ttf) ici (source inconnue, licence inconnue).
Les polices ne calculent pas automatiquement la clé modulo 103, ni ajoutent les caractères Start et Stop, la conformité à la norme ISO/IEC 15417 n'est pas garantie.
dCode se réserve la propriété du code source pour "Code Barres 128". Tout algorithme pour "Code Barres 128", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Code Barres 128" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou toute base de données, ou accès API à "Code Barres 128" ou tout autre élément ne sont pas publics (sauf licence open source explicite). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Code Barres 128" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source (Licence de libre diffusion Creative Commons CC-BY).
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Code Barres 128 sur dCode.fr [site web en ligne], consulté le 19/03/2026,