Code 39Linear (1D)Introduced 1974

Code 39 Extended

Code 39 with escape sequences that map the full ASCII set onto the 43-character base alphabet.

Code 39 Extended Specification

Character setFull ASCII 0-127 via two-character shift sequences over the base 43-character set
Data lengthVariable; non-base characters consume two code positions each
Check digitOptional Mod 43 (computed over the transmitted ASCII data, not the shift pairs)
Density≈5-9 base characters per inch; effectively halves for lowercase-heavy data
Module width (X-dimension)0.19-0.50 mm typical
Print ratioWide:narrow ratio 2:1 to 3:1
MagnificationScales with X-dimension and ratio
Quiet zone10X on each side
StandardISO/IEC 16388 (extended interpretation); AIM USS-39
OriginDavid Allais and Ray Stevens, Intermec (extension popularized in the 1980s), 1974
Sample dataCode39 Ext!

Try It: Generate a Code 39 Extended Barcode

This live generator is preconfigured for Code 39 Extended. Adjust size, colors, and text — then download as PNG or SVG. Free, no signup, all encoding happens in your browser.

Open the full Code 39 Extended generator →

What Is Code 39 Extended?

Code 39 Extended (also called Full ASCII Code 39) overlays a convention on plain Code 39: lowercase letters and the remaining ASCII characters are encoded as two-character sequences built from the four "zero-shift" characters $ / + % followed by a base character. For example, lowercase a is encoded as +A. A compliant scanner strips the shift pair and transmits the single resulting character, so the host system receives ordinary ASCII.

The cost is width: any character outside the base 43 takes double the space, so a fully lowercase string becomes about twice as wide as its Code 128 equivalent. Extended Code 39 persists in older systems that predate Code 128 adoption and in environments where a single symbology must handle arbitrary keyboard input. New deployments should generally prefer Code 128.

Common Applications

  • Legacy systems requiring full keyboard ASCII in Code 39
  • Mixed alphanumeric data in Code 39-based supply chains
  • Applications that cannot change symbology but receive arbitrary text

Code 39 Extended FAQ

Will every Code 39 scanner read extended characters correctly?

Most modern scanners enable Full ASCII translation by default or by a config toggle, but it is the weakest compatibility point of the format: a scanner without the mode active will transmit the raw shift pairs (+A instead of a). For critical flows, verify scanner configuration or move to Code 128.

How much wider is Extended Code 39 than Code 128 for mixed-case text?

Roughly 2.5-3× for lowercase-heavy strings: each lowercase letter costs two 9-element characters plus a separator versus one 11-module character in Code 128. That width difference is the main reason Code 128 displaced it wherever label space matters.