| Tip: Bookmark this page with Ctrl-D (Win) or Apple-D (Mac) | Main • Products • Know How / FAQ • Store • Contact |
Code 39
Code 39 was developed by Intermec in the 1970's. It's widely used for warehouse management and general product labelling, also sometimes referred to as Code 3-of-9. In some countries, e.g. Germany, the code is used to identify pharmaceuticals (PZN code, "Pharma Zentral Nummer"). The code is different from many others in use in that it can encode not only numbers but also alphanumeric characters:
Sample barcode created with our barcode plugin for Adobe Illustrator.
Standard Code 39 encodes digits, capital letters and some special characters. Extended Code 39 encodes the full ASCII charset including lower case letters and ASCII control characters (like TAB or Carriage Return), a feature that can be quite useful. Characters of the Extended Code 39 are encoded by special two-character codes, see below for a table. Note, however, that Extended Code 39 can grow quite big. Also, the barcode scanner has to be setup to decode Code 39 Extended.
PZN Pharma Barcodes
In Germany, the PZN ("Pharmazentralnummer") is used to identify pharmaceutical products at the POS. Code 39 is used to encode PZNs. Please see our know how article about PZN barcodes for more information.
Character table Extended Code 39
ASCII char, to the right the combination to encode. E.g.: To encode lowercase "a" type "+A":
| NUL | %U | SUB | $Z | 4 | 4 | N | N | h | +H |
| SOH | $A | ESC | %A | 5 | 5 | O | O | i | +I |
| STX | $B | FS | %B | 6 | 6 | P | P | j | +J |
| ETX | $C | GS | %C | 7 | 7 | Q | Q | k | +K |
| EOT | $D | RS | %D | 8 | 8 | R | R | l | +L |
| ENQ | $E | US | %E | 9 | 9 | S | S | m | +M |
| ACK | $F | SP | Space | : | /Z | T | T | n | +N |
| BEL | $G | ! | /A | ; | %F | U | U | o | +O |
| BS | $H | " | /B | < | %G | V | V | p | +P |
| HT | $I | # | /C | = | %H | W | W | q | +Q |
| LF | $J | $ | /D | > | %I | X | X | r | +R |
| VT | $K | % | /E | ? | %J | Y | Y | s | +S |
| FF | $L | & | /F | ยง | %V | Z | Z | t | +T |
| CR | $M | ' | /G | A | A | [ | %K | u | +U |
| SO | $N | ( | /H | B | B | \ | %L | v | +V |
| SI | $O | ) | /I | C | C | ] | %M | w | +W |
| DLE | $P | * | /J | D | D | ^ | %N | x | +X |
| DC1 | $Q | + | /K | E | E | _ | %O | y | +Y |
| DC2 | $R | , | /L | F | F | ' | %W | z | +Z |
| DC3 | $S | - | - | G | G | a | +A | { | %P |
| DC4 | $T | . | . | H | H | b | +B | | | %Q |
| NAK | $U | / | /O | I | I | c | +C | } | %R |
| SYN | $V | 0 | 0 | J | J | d | +D | ~ | %S |
| ETB | $W | 1 | 1 | K | K | e | +E | DEL | %T |
| CAN | $X | 2 | 2 | L | L | f | +F | DEL | %X |
| EM | $Y | 3 | 3 | M | M | g | +G | DEL | %Z |
Note: It's not possible to encode function key codes this way as the function keys on a PC keyboard do not have a representation in the ASCII table. Look at your barcode reader's manual for a feature called "Function Key Emulation" or the like.
More facts about this barcode
Application: Warehouse management, pharmaceuticals (Europe)
Characters: Numbers 0-9, Letters A-Z. As Extended Code 39 the full ASCII set
Checksum: Sometimes
Checksum calculation: Modulo 43. Each character of the code can be a check character.
Software to generate Code 39 / Code 39 Extended
Barcode Plugin for Illustrator Barcode Plugin for Indesign Barcode Add In for Microsoft Word
Barcode Add In for Microsoft Excel
More software to create Code 39 (Windows / Mac OS X) • Free barcode font
We also have sample code for Code 39 checksum calculation, see our FAQ for more information.


