Code 128 vs Code 39
Code 128 is denser and more flexible; Code 39 is older and wider for the same data.
Code 128 and Code 39 are workhorse 1D symbologies for warehouse, manufacturing, and asset labels. Code 128 packs more characters into less width; Code 39 remains on legacy systems that expect its simpler alphabet and wider bars. Create samples in the Code 128 generator and Code 39 generator, then decode with Barcode Scan.
Why it matters
Logistics teams live or die by label density. A Code 128 shipment ID fits beside a carrier logo where Code 39 would overflow; yet hospitals and defense contractors sometimes mandate Code 39 because their decades-old SOPs and scanners were certified on that symbology. Picking the wrong one means either reconfiguring every handheld or reprinting thousands of rack labels.
How to apply it
Audit your WMS, MES, or ERP export templates for the symbology name—they often hard-code one format. For new deployments without legacy constraints, default to Code 128 for alphanumeric order numbers, lot codes, and SSCC-style IDs. Stay on Code 39 only when a trading partner or internal standard explicitly requires it. Pair this decision with barcode size guidelines so narrow bars remain scannable.
- List maximum label width and required data length before choosing a symbology.
- Enable checksum characters only if your spec demands them—Code 39 checksum is optional; Code 128 includes checksum modules internally.
- Use subset B in Code 128 for typical ASCII payloads unless you are optimizing numeric-only strings.
- Scan at the farthest expected distance on your warehouse aisles, not just at arm’s length.
Common mistakes
Migrating to Code 128 without updating scanner firmware leaves devices reading partial strings. Conversely, choosing Code 39 for 20-character IDs forces tiny X-dimensions that fail on thermal printers. Do not mix symbologies on the same label without confirming the reader supports multi-symbol scanning. Review barcode types if your payload outgrows either format.
Recommended tools
Generate side-by-side proofs in Code 128 and Code 39, explore other logistics formats from the Barcode Generator, and validate with Barcode Scan.