freebarcodeqr.com

Free Code 39 Barcode Generator.

The older alphanumeric standard. Uppercase letters, digits, a few symbols.

Generated in your browser. Never stored.

Code 39 (also called Code 3 of 9) is one of the oldest alphanumeric barcode formats. It encodes uppercase A–Z, digits 0–9, and seven symbols: - . $ / + % and space.

Use Code 128 instead for new projects unless your scanner specifically requires Code 39 — it's lower-density and lacks check-digit validation in the basic version.

Free forever. No signup, no watermark on the downloaded image, no expiry on the barcode you generate today.

When you actually need Code 39

Many older industrial and government systems require Code 39 — defense supply chains (LOGMARS), some healthcare and library systems, and some legacy ERP integrations. If your specification document names Code 39, use it.

For greenfield work — internal labels, modern WMS systems, e-commerce — pick Code 128. It is shorter, more reliable, and supports lowercase.

Character set

Uppercase A–Z, digits 0–9, and these symbols: - . $ / + % * and space. Lowercase is not supported; the encoder rejects it.

An extended Code 39 mode supports the full ASCII set by combining two characters per symbol, but the result is no longer compatible with basic Code 39 scanners.

Frequently asked questions

Why won't my barcode encode lowercase letters?
Code 39 doesn't support lowercase in its standard form. Switch to Code 128 or convert your data to uppercase.
Does Code 39 have a check digit?
Optionally. The Modulo-43 check character can be enabled but most readers don't validate it. Code 128 has built-in validation always.

Related barcode formats

  • Code 128

    All printable ASCII, variable length. The default for warehouses.

  • Code 93

    Denser successor to Code 39 with built-in check digits.

  • Codabar

    Digits with A/B/C/D start/stop. Used by FedEx and libraries.