# Code 128

Le code 128 est un format de code-barres permettant de coder les 128 caractères de la table ASCII. Il en existe trois tables de codage : A, B et C.
C'est un format courant dans le milieu industriel.
Il existe une normalisation qui dérive du code 128 appelée GS1-128 (anciennement EAN 128). Cette norme est utilisée pour des besoins de logistique et de traçabilité.

## Spécifications
### Largeurs des barres

Le code 128 consiste en une succession de caractères représentés chacun par une succession de trois barres et de trois espaces de largeur variable (1 à 4 unité). Chaque caractère commence par une barre et se termine par un espace et sa largeur totale est de 11 unités.
Ce code compte également un caractère spécifique "Stop", qui a comme particularité de contenir 7 barres et espaces, se terminant par une barre, et d'avoir une longueur de 13 unités.
Les détails de chaque caractères sont présentés dans le tableau suivant. La largeur de chaque barre ou espace peut être de 1, 2, 3 ou 4 unités.
Code 128 :
| Valeur | Valeur Hexadécimale | 128A | 128B | 128C | Caractère (Commun/Peu commun/Barcodesoft) | Caractère (Commun/Peu commun/Barcodesoft) | Barre/Espace | Barre/Espace |
| Valeur | Valeur Hexadécimale | 128A | 128B | 128C | Code ASCII | Latin-1 | Modèle | Tailles |
| 0 | 00 | espace | espace | 00 | 32 ou 194 ou 207 / 212 / 252 | ␣ ou Â ou Ï / Ô / ü | 11011001100 | 212222 |
| 1 | 01 | ! | ! | 01 | 33 | ! | 11001101100 | 222122 |
| 2 | 02 | " | " | 02 | 34 | " | 11001100110 | 222221 |
| 3 | 03 | # | # | 03 | 35 | # | 10010011000 | 121223 |
| 4 | 04 | $ | $ | 04 | 36 | $ | 10010001100 | 121322 |
| 5 | 05 | % | % | 05 | 37 | % | 10001001100 | 131222 |
| 6 | 06 | & | & | 06 | 38 | & | 10011001000 | 122213 |
| 7 | 07 | ' | ' | 07 | 39 | ' | 10011000100 | 122312 |
| 8 | 08 | ( | ( | 08 | 40 | ( | 10001100100 | 132212 |
| 9 | 09 | ) | ) | 09 | 41 | ) | 11001001000 | 221213 |
| 10 | 0a | * | * | 10 | 42 | * | 11001000100 | 221312 |
| 11 | 0b | + | + | 11 | 43 | + | 11000100100 | 231212 |
| 12 | 0c | , | , | 12 | 44 | , | 10110011100 | 112232 |
| 13 | 0d | - | - | 13 | 45 | - | 10011011100 | 122132 |
| 14 | 0e | . | . | 14 | 46 | . | 10011001110 | 122231 |
| 15 | 0f | / | / | 15 | 47 | / | 10111001100 | 113222 |
| 16 | 10 | 0 | 0 | 16 | 48 | 0 | 10011101100 | 123122 |
| 17 | 11 | 1 | 1 | 17 | 49 | 1 | 10011100110 | 123221 |
| 18 | 12 | 2 | 2 | 18 | 50 | 2 | 11001110010 | 223211 |
| 19 | 13 | 3 | 3 | 19 | 51 | 3 | 11001011100 | 221132 |
| 20 | 14 | 4 | 4 | 20 | 52 | 4 | 11001001110 | 221231 |
| 21 | 15 | 5 | 5 | 21 | 53 | 5 | 11011100100 | 213212 |
| 22 | 16 | 6 | 6 | 22 | 54 | 6 | 11001110100 | 223112 |
| 23 | 17 | 7 | 7 | 23 | 55 | 7 | 11101101110 | 312131 |
| 24 | 18 | 8 | 8 | 24 | 56 | 8 | 11101001100 | 311222 |
| 25 | 19 | 9 | 9 | 25 | 57 | 9 | 11100101100 | 321122 |
| 26 | 1a | : | : | 26 | 58 | : | 11100100110 | 321221 |
| 27 | 1b | ; | ; | 27 | 59 | ; | 11101100100 | 312212 |
| 28 | 1c | < | < | 28 | 60 | < | 11100110100 | 322112 |
| 29 | 1d | = | = | 29 | 61 | = | 11100110010 | 322211 |
| 30 | 1e | > | > | 30 | 62 | > | 11011011000 | 212123 |
| 31 | 1f | ? | ? | 31 | 63 | ? | 11011000110 | 212321 |
| 32 | 20 | @ | @ | 32 | 64 | @ | 11000110110 | 232121 |
| 33 | 21 | A | A | 33 | 65 | A | 10100011000 | 111323 |
| 34 | 22 | B | B | 34 | 66 | B | 10001011000 | 131123 |
| 35 | 23 | C | C | 35 | 67 | C | 10001000110 | 131321 |
| 36 | 24 | D | D | 36 | 68 | D | 10110001000 | 112313 |
| 37 | 25 | E | E | 37 | 69 | E | 10001101000 | 132113 |
| 38 | 26 | F | F | 38 | 70 | F | 10001100010 | 132311 |
| 39 | 27 | G | G | 39 | 71 | G | 11010001000 | 211313 |
| 40 | 28 | H | H | 40 | 72 | H | 11000101000 | 231113 |
| 41 | 29 | I | I | 41 | 73 | I | 11000100010 | 231311 |
| 42 | 2a | J | J | 42 | 74 | J | 10110111000 | 112133 |
| 43 | 2b | K | K | 43 | 75 | K | 10110001110 | 112331 |
| 44 | 2c | L | L | 44 | 76 | L | 10001101110 | 132131 |
| 45 | 2d | M | M | 45 | 77 | M | 10111011000 | 113123 |
| 46 | 2e | N | N | 46 | 78 | N | 10111000110 | 113321 |
| 47 | 2f | O | O | 47 | 79 | O | 10001110110 | 133121 |
| 48 | 30 | P | P | 48 | 80 | P | 11101110110 | 313121 |
| 49 | 31 | Q | Q | 49 | 81 | Q | 11010001110 | 211331 |
| 50 | 32 | R | R | 50 | 82 | R | 11000101110 | 231131 |
| 51 | 33 | S | S | 51 | 83 | S | 11011101000 | 213113 |
| 52 | 34 | T | T | 52 | 84 | T | 11011100010 | 213311 |
| 53 | 35 | U | U | 53 | 85 | U | 11011101110 | 213131 |
| 54 | 36 | V | V | 54 | 86 | V | 11101011000 | 311123 |
| 55 | 37 | W | W | 55 | 87 | W | 11101000110 | 311321 |
| 56 | 38 | X | X | 56 | 88 | X | 11100010110 | 331121 |
| 57 | 39 | Y | Y | 57 | 89 | Y | 11101101000 | 312113 |
| 58 | 3a | Z | Z | 58 | 90 | Z | 11101100010 | 312311 |
| 59 | 3b | [ | [ | 59 | 91 | [ | 11100011010 | 332111 |
| 60 | 3c | \ | \ | 60 | 92 | \ | 11101111010 | 314111 |
| 61 | 3d | ] | ] | 61 | 93 | ] | 11001000010 | 221411 |
| 62 | 3e | ^ | ^ | 62 | 94 | ^ | 11110001010 | 431111 |
| 63 | 3f | _ | _ | 63 | 95 | _ | 10100110000 | 111224 |
| 64 | 40 | NUL | ` | 64 | 96 | ` | 10100001100 | 111422 |
| 65 | 41 | SOH | a | 65 | 97 | a | 10010110000 | 121124 |
| 66 | 42 | STX | b | 66 | 98 | b | 10010000110 | 121421 |
| 67 | 43 | ETX | c | 67 | 99 | c | 10000101100 | 141122 |
| 68 | 44 | EOT | d | 68 | 100 | d | 10000100110 | 141221 |
| 69 | 45 | ENQ | e | 69 | 101 | e | 10110010000 | 112214 |
| 70 | 46 | ACK | f | 70 | 102 | f | 10110000100 | 112412 |
| 71 | 47 | BEL | g | 71 | 103 | g | 10011010000 | 122114 |
| 72 | 48 | BS (retour arrière) | h | 72 | 104 | h | 10011000010 | 122411 |
| 73 | 49 | HT (Tab) | i | 73 | 105 | i | 10000110100 | 142112 |
| 74 | 4a | LF | j | 74 | 106 | j | 10000110010 | 142211 |
| 75 | 4b | VT | k | 75 | 107 | k | 11000010010 | 241211 |
| 76 | 4c | FF | l | 76 | 108 | l | 11001010000 | 221114 |
| 77 | 4d | CR (Retour chariot) | m | 77 | 109 | m | 11110111010 | 413111 |
| 78 | 4e | SO | n | 78 | 110 | n | 11000010100 | 241112 |
| 79 | 4f | SI | o | 79 | 111 | o | 10001111010 | 134111 |
| 80 | 50 | DLE | p | 80 | 112 | p | 10100111100 | 111242 |
| 81 | 51 | DC1 | q | 81 | 113 | q | 10010111100 | 121142 |
| 82 | 52 | DC2 | r | 82 | 114 | r | 10010011110 | 121241 |
| 83 | 53 | DC3 | s | 83 | 115 | s | 10111100100 | 114212 |
| 84 | 54 | DC4 | t | 84 | 116 | t | 10011110100 | 124112 |
| 85 | 55 | NAK | u | 85 | 117 | u | 10011110010 | 124211 |
| 86 | 56 | SYN | v | 86 | 118 | v | 11110100100 | 411212 |
| 87 | 57 | ETB | w | 87 | 119 | w | 11110010100 | 421112 |
| 88 | 58 | CAN (Annuler) | x | 88 | 120 | x | 11110010010 | 421211 |
| 89 | 59 | EM | y | 89 | 121 | y | 11011011110 | 212141 |
| 90 | 5a | SUB | z | 90 | 122 | z | 11011110110 | 214121 |
| 91 | 5b | ESC | { | 91 | 123 | { | 11110110110 | 412121 |
| 92 | 5c | FS | | | 92 | 124 | | | 10101111000 | 111143 |
| 93 | 5d | GS | } | 93 | 125 | } | 10100011110 | 111341 |
| 94 | 5e | RS | ~ | 94 | 126 | ~ | 10001011110 | 131141 |
| 95 | 5f | US | DEL | 95 | 195 / 200 / 240 | Ã / È / ð | 10111101000 | 114113 |
| 96 | 60 | FNC 3 | FNC 3 | 96 | 196 / 201 / 241 | Ä / É / ñ | 10111100010 | 114311 |
| 97 | 61 | FNC 2 | FNC 2 | 97 | 197 / 202 / 242 | Å / Ê / ò | 11110101000 | 411113 |
| 98 | 62 | Shift B | Shift A | 98 | 198 / 203 / 243 | Æ / Ë / ó | 11110100010 | 411311 |
| 99 | 63 | Code C | Code C | 99 | 199 / 204 / 244 | Ç / Ì / ô | 10111011110 | 113141 |
| 100 | 64 | Code B | FNC 4 | Code B | 200 / 205 / 245 | È / Í / õ | 10111101110 | 114131 |
| 101 | 65 | FNC 4 | Code A | Code A | 201 / 206 / 246 | É / Î / ö | 11101011110 | 311141 |
| 102 | 66 | FNC 1 | FNC 1 | FNC 1 | 202 / 207 / 247 | Ê / Ï / ÷ | 11110101110 | 411131 |
| 103 | 67 | Début Code A | Début Code A | Début Code A | 203 / 208 / 248 | Ë / Ð / ø | 11010000100 | 211412 |
| 104 | 68 | Début Code B | Début Code B | Début Code B | 204 / 209 / 249 | Ì / Ñ / ù | 11010010000 | 211214 |
| 105 | 69 | Début Code C | Début Code C | Début Code C | 205 / 210 / 250 | Í / Ò / ú | 11010011100 | 211232 |
| 106 | 6a | Stop | Stop | Stop | — | — | 11000111010 | 233111 |
| — | — | Stop inversé utilisé pour détecter le sens de lecture | Stop inversé utilisé pour détecter le sens de lecture | Stop inversé utilisé pour détecter le sens de lecture | — | — | 11010111000 | 211133 |
| — | — | Stop pattern (7 bars/spaces) | Stop pattern (7 bars/spaces) | Stop pattern (7 bars/spaces) | 206 / 211 / 251 | Î / Ó / û | 1100011101011 | 2331112 |