Code 39

Also called: Code 3 of 9, USD-3, LOGMARS

Definition

Code 39 is a self-checking linear barcode that encodes 43 characters: digits, uppercase letters, space and - . $ / + %. An asterisk marks the start and stop of every symbol.

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.

Frequently asked questions

Can Code 39 encode lowercase letters?

Not in standard mode. Full ASCII Code 39 can represent lowercase letters by combining two characters, but many systems use Code 128 instead.

Why do Code 39 barcodes start and end with an asterisk?

The asterisk is the start and stop character that tells the scanner where the barcode begins and ends.

Sources and standards

All terms