General purpose

Code 39

Code 39 encodes uppercase letters, digits and a few symbols. It is widely used for asset tags and internal inventory.

Preview

Enter valid data to see the barcode.

Encoding happens entirely in your browser. This tool encodes numbers you already own — it does not issue or register GS1 company prefixes.

Data rules

0–9, A–Z, and - . space $ / + %

  • Length: 1–43 characters
  • Character set: alphanumeric
  • Check digit: not used
  • Quiet zone: 10 modules

Printing notes

  • Code 39 is self-checking and needs no check digit, though a modulo-43 digit can be added in high-accuracy environments.
  • It is around 30% wider than Code 128 for the same data, so prefer Code 128 where label space is tight.
  • Lowercase letters are not supported — enter values in uppercase.

Workflow links

Related barcode formats

What is Code 39?

Code 39 is a self-checking alphanumeric symbology from 1974 that encodes digits, uppercase letters and a handful of symbols. Each character is nine elements, three of them wide — the origin of the name.

It is low density and has no mandatory check digit, so it needs more label width than Code 128 for the same data. Its value today is compatibility: almost every scanner and legacy system in existence reads it.

Frequently asked questions

Is this Code 39 generator free to use?

Yes. The Code 39 generator is free, has no signup and adds no watermark. The symbol is encoded in your browser, so the data you type is never uploaded to a server.

What file format should I download for printing Code 39?

Download SVG for anything that will be printed. SVG is vector, so bar widths and the quiet zone stay exact at any size. PNG is fine for screens and slide decks, but never scale a PNG barcode up — enlarging it blurs the bar edges and scanners start failing.

Why is my Code 39 barcode so wide?

Code 39 uses nine elements per character and needs an inter-character gap, so it is roughly 30–50% wider than Code 128 for the same content. If width matters, switch to Code 128.

Does Code 39 support lowercase letters?

Not in the standard character set. Lowercase requires Full ASCII Code 39, which encodes each character as a two-character pair — in practice, Code 128 is the better choice.

Standards & references

This page follows the published specifications. The bodies that own them: