MrBober Barcode Generator

Guides / CODE128 vs CODE39: which barcode should you use?

CODE128 vs CODE39: which barcode should you use?

A practical comparison of CODE128 and CODE39 for warehouse labels, asset identification and internal tracking.

Reviewed: 6 August 2026

The practical difference

CODE128 and CODE39 can both represent letters and numbers, but they do so differently. CODE128 is usually the more compact choice when space is limited. CODE39 is visually simple and remains common in internal warehouse, tool and asset workflows. The best choice is not the format that looks better; it is the format accepted by the scanner and software that receive the value.

When CODE128 is a strong default

CODE128 is useful for stock identifiers, order references, location codes and labels that combine numbers with upper- and lower-case text. It generally fits more information into a given width than CODE39. That can help when labels are narrow, provided the bars remain wide enough for the printer and scanner.

Choose CODE128 when you control both the label and the receiving workflow, and no external specification requires another standard. Test the longest value you expect to print; a short sample can hide width problems that appear later.

When CODE39 may be preferred

CODE39 is often selected for straightforward internal identifiers, especially where existing scanners, procedures or label templates already expect it. It supports a more limited character set in its common form and normally produces a wider symbol. That extra width is not necessarily a problem on large warehouse labels.

Questions to ask before deciding

  • Does the receiving software specify a symbology?
  • Will values contain lower-case letters or special characters?
  • What is the longest possible value?
  • How much physical width is available?
  • Which printers and scanners will be used?

Testing the decision

Create the longest realistic value, print it at the final size and scan it at the actual working distance. Test more than one scanner when the labels will be used across a team. If both formats work, choose the one that gives a clearer, less crowded label while meeting the system requirement.