# Code 39

Le Code 39 (aussi appelé par abus Code 3 sur 9 et parfois Alpha39) est une symbologie code-barres, utilisée, entre autres, pour le marquage des médicaments en pharmacie, en France et dans certains autres pays européens (Allemagne, Italie, …). Il a été utilisé jusqu'à récemment dans le secteur automobile, constructeurs et équipementiers, en rapport avec les normes internationales Odette-GALIA, qui utilisent maintenant les symbologies Code 128 et PDF-417.

## Principe

Un Code 39 est de longueur variable. Alphanumérique, il permet de codifier les 26 lettres majuscules, les 10 chiffres (0 à 9) ainsi que les sept caractères spéciaux suivants « espace ; - ; $ ; % ; . ; / ; + », soit un total de 43 caractères. Le caractère spécial * sert de délimiteur de début et de fin. Un Code 39 commence et finit toujours par le caractère « * » qui sert de déclencheur pour le lecteur de code-barres. Chaque caractère est composé de 9 éléments : 5 barres et 4 espaces ; chaque barre ou espace est large (représentant un bit à 1) ou étroit (représentant un bit à 0). Le rapport de largeur entre étroit et large doit être compris entre 1:2 et 1:3 et exactement 3 parmi ces 9 éléments sont toujours larges. Enfin chaque caractère commence et finit par une barre noire et un espace étroit blanc est inséré entre deux caractères successifs.
Le code-barres ne contient aucune somme de contrôle mais la lecture erronée d'une barre est détectée par la production d'une combinaison invalide par le lecteur (les nombres de bits à 0 et 1 doivent toujours être respectivement 6 et 3). Le plus grand défaut de ce code barre est sans doute sa faible densité face à d'autres comme Code 128, empêchant de l'employer sur les petits objets. Par opposition son plus grand avantage est que comme il ne requiert aucune somme de contrôle, il peut être facilement intégré à tout système d'impression via une police de caractères spéciale.
Le Code 39 a été développé par David Allais et Ray Stevens en 1974. À l'origine il y avait toujours 2 barres noires larges et 1 barre blanche permettant la composition de 40 combinaisons. En soustrayant le caractère de départ et de fin il restait donc 39 combinaisons : c'est l'origine du nom Code 39. Les ponctuations ont été ajoutées par la suite en déviant du design original. Le Code 39 a été ensuite standardisé par l'ANSI MH 10.8 M-1983 and MIL-STD-1189.

## Codage

Le codage de chaque caractère est la succession de 9 bits dont exactement 3 sont à 1 (barre large). Dans l'image ci-contre le caractère * ne peut pas être utilisé comme les autres puisqu'il sert de marqueur de début et de fin.
Voici l'ensemble des codes existant :
Code 39 :
| Caractère | Code |
| A | 100001001 |
| B | 001001001 |
| C | 101001000 |
| D | 000011001 |
| E | 100011000 |
| F | 001011000 |
| G | 000001101 |
| H | 100001100 |
| I | 001001100 |
| J | 000011100 |
| K | 100000011 |
| L | 001000011 |
| M | 101000010 |
| N | 000010011 |
| O | 100010010 |
| P | 001010010 |
| Q | 000000111 |
| R | 100000110 |
| S | 001000110 |
| T | 000010110 |
| U | 110000001 |
| V | 011000001 |
| W | 111000000 |
| X | 010010001 |
| Y | 110010000 |
| Z | 011010000 |
| 0 | 000110100 |
| 1 | 100100001 |
| 2 | 001100001 |
| 3 | 101100000 |
| 4 | 000110001 |
| 5 | 100110000 |
| 6 | 001110000 |
| 7 | 000100101 |
| 8 | 100100100 |
| 9 | 001100100 |
| espace | 011000100 |
| - | 010000101 |
| $ | 010101000 |
| % | 000101010 |
| . | 110000100 |
| / | 010100010 |
| + | 010001010 |
| * | 010010100 |