| Tip: Bookmark this page with Ctrl-D (Win) or Apple-D (Mac) | Main • Products • Know How / FAQ • Download • 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.
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. 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
Commercial Software to create this barcode (Windows / Mac OS X) • Free barcode font
We also have sample code for Code 39 checksum calculation, see our FAQ for more information.


