Code 39 Barcode Generator is designed for the exact search intent behind “code 39 barcode generator”. Generate a Code 39 barcode from supported data while respecting the symbology's character set and any optional checksum mode actually implemented. Generate a Code 39 barcode from supported data while respecting the symbology's character set and any optional checksum mode actually implemented. Code 39 character set Standard Code 39 encodes 43 data characters: uppercase A–Z, digits 0–9, space and the symbols - . $ / + % . The asterisk is used as the start/stop delimiter rather than ordinary data. Why it is called Code 39 Each symbol uses nine bar/space elements, three of which are wide. Optional Mod 43 check character Some applications append a Modulo-43 checksum. Do not claim the checksum is present unless the generator actually supports and enables it. Worked example: The text ABC123 uses only standard Code 39 data characters and can be encoded without requiring Extended Code 39. Common practical uses include Create internal asset labels; Test scanner workflows; Generate legacy-compatible identifiers; Prototype barcode labels. Important limitations: Standard Code 39 does not directly encode arbitrary Unicode text. The optional checksum depends on application requirements. Printed barcode reliability also depends on size, quiet zones, resolution and scanner configuration. Key questions this page should answer include: What characters can Code 39 encode? Standard Code 39 supports uppercase A–Z, digits 0–9, space, and - . $ / + %. What does the asterisk mean in Code 39? It represents the start/stop delimiter and is not ordinary payload data. Does Code 39 require a check digit? Not generally; Mod 43 is optional in standard use but required by some application standards. Can Code 39 encode lowercase letters? Not directly in standard Code 39; Extended Code 39 uses character pairs for a broader ASCII set. Why is Code 39 less dense than Code 128? Its symbol structure requires more space for the same amount of data. The page should stay focused on this differentiator: Win on standards-aware character validation, start/stop explanation and optional Mod 43 clarity rather than treating every string as valid Code 39.
How to use this tool
Code 39 character set
Standard Code 39 encodes 43 data characters: uppercase A–Z, digits 0–9, space and the symbols - . $ / + %. The asterisk is used as the start/stop delimiter rather than ordinary data.
Why it is called Code 39
Each symbol uses nine bar/space elements, three of which are wide.
Optional Mod 43 check character
Some applications append a Modulo-43 checksum. Do not claim the checksum is present unless the generator actually supports and enables it.
Examples
Simple data example
The text <code>ABC123</code> uses only standard Code 39 data characters and can be encoded without requiring Extended Code 39.
Common use cases
- Create internal asset labels
- Test scanner workflows
- Generate legacy-compatible identifiers
- Prototype barcode labels
Frequently asked questions
What characters can Code 39 encode?
Standard Code 39 supports uppercase A–Z, digits 0–9, space, and - . $ / + %.
What does the asterisk mean in Code 39?
It represents the start/stop delimiter and is not ordinary payload data.
Does Code 39 require a check digit?
Not generally; Mod 43 is optional in standard use but required by some application standards.
Can Code 39 encode lowercase letters?
Not directly in standard Code 39; Extended Code 39 uses character pairs for a broader ASCII set.
Why is Code 39 less dense than Code 128?
Its symbol structure requires more space for the same amount of data.