Data rules
0–9, A–Z, and - . space $ / + %
- Length: 1–43 characters
- Character set: alphanumeric
- Check digit: not used
- Quiet zone: 10 modules
General purpose
Code 39 encodes uppercase letters, digits and a few symbols. It is widely used for asset tags and internal inventory.
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.
0–9, A–Z, and - . space $ / + %
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.
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.
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.
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.
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.
This page follows the published specifications. The bodies that own them: