Code 128 vs. Code 39 Barcodes
Setting up an internal tracking system? Learn why Code 128 is denser than Code 39 and which one to choose for asset tags.

The Need for Alphanumeric Tracking
When setting up an internal asset tracking or warehouse inventory system, you often need to encode identifiers that include both letters and numbers, such as ASSET-B84-NY. Because retail barcodes like UPC only support numbers, you must choose an alphanumeric symbology.
The two undisputed leaders in this category are Code 39 and Code 128.
Data Density: The Deciding Factor
Code 39 is the older standard. It is widely supported by virtually every scanner on earth and natively supports 43 characters (uppercase A-Z, numbers 0-9, and a few symbols). However, it is a low-density barcode. If you encode a 15-character string in Code 39, the barcode becomes extremely wide and may not fit on your label.
Code 128 is a modern, high-density symbology. It supports the entire 128-character ASCII set (including lowercase letters). Thanks to its advanced encoding algorithm, Code 128 can encode the exact same string in roughly 30% less horizontal space than Code 39.
Which Should You Choose?
For almost all modern applications—especially asset tags applied to small items like laptops, server racks, or power tools—Code 128 is the recommended choice because of its superior data density and built-in checksum error correction.
The only reason to choose Code 39 today is if you are integrating with a very old, legacy inventory system that was hardcoded to only accept Code 39 inputs, or if the United States Department of Defense requires it (LOGMARS standard).
Frequently Asked Questions
*ASSET1*). You do not need to add these in our generator; we handle them automatically.Generate High-Density Asset Tags
Label your entire asset inventory: our bulk barcode generator creates Code 128 or Code 39 labels from a spreadsheet.