flag german flag uk flag us Tip: Bookmark this page with Ctrl-D (Win) or Apple-D (Mac) MainProductsKnow How / FAQStoreContact

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:

Code 39 image

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.