How Code 39 encodes characters
Each Code 39 character is made of nine elements, five bars and four spaces, and three of the nine are wide. That fixed pattern is where the name “3 of 9” comes from, and it makes the code self-checking: a misread usually produces an invalid pattern rather than a wrong character.
Every symbol starts and ends with an asterisk, which is why the asterisk cannot be used as data. A mod-43 check character is optional, and a Full ASCII mode can represent other characters by combining pairs of symbols.
- Digits 0 to 9
- Uppercase letters A to Z
- Space and the symbols - . $ / + %
- Start and stop character: *
Where Code 39 is used
Code 39 was developed in the 1970s and became popular because it is simple to print and to decode. It is still used in the automotive industry, in defense logistics under the LOGMARS program, and on ID badges and internal asset labels.
Its drawback is low density: it takes much more space per character than Code 128. The symbology is specified in ISO/IEC 16388.