What is the Difference Between Code 39 and Code 128?

Difference Between Code 39 and Code 128

Last Updated on 2021-09-12

Code 39 and Code 128 are both 1D barcodes that support both numeric and alpha data. They are widely used in non-retail environments, such as library books, membership cards, small items, etc. In this article, we will compare the two barcodes and help you understand the differences between them.

Basic introduction

A Code 39 barcode encodes 39 characters in total. However, in its most recent version, the character set has been increased to 43. A Code 128 barcode is more powerful because it can encode a full 128 ASCII character set. To encode all 128 characters, Code 128 consists of three subsets A, B, and C.

Code39 vs Code 128

A quick comparison table

Barcode Types

Code 39

Code 128


Moderate density

High density

Character Set


Code 39 also support these characters: Percent sign (%), Plus sign (+), Dollar sign ($), Slash mark (/), Period (.), Hyphen (-)


Maximum Capacity

Unlimited (Usually contains 20 to 23 alphanumeric characters)

Unlimited (Usually up to 48 alphanumeric characters)

Error Detection

Code 39 is self-detection, a check digit normally isn’t necessary

Code 128 has a modulo-103 check digit to detect error

Error Correction

Code 39 does not support error correction

Code 128 has a mandatory error correction character

Usage Scenarios

  • Asset labeling

  • Library books

  • Membership cards

  • Internal inventory tracking

  • Supply chain

  • Serial shipping container codes

Code 39 vs. Code 128

The most significant difference is that Code 128 has a higher density than Code 39. Generally, a high-density barcode means it can be printed clearly. It is not always easy to decode a low-resolution barcode image. Therefore, Code 128 might be the better choice in many scenarios because of its excellent density and a much larger selection of characters. One advantage of Code 39 is that it can be easily integrated into an existing barcode printing system because Code 39 does not include a check digit.

Take the Next Step

We hope this helps you to determine which barcode type you are going to choose. Now it’s time to read the barcodes. You can download Dynamsoft Barcode Reader to implement barcode reading functionality into your application.

After downloading the Dynamsoft Barcode Reader, you can start your free 30-Day trial and try our online demo.

Try our Free Online Demo Start your Free 30-Day Trial

A series on different types of barcodes

If you’d like to compare other barcode types, please check out our online barcode comparison tool.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Subscribe Newsletter

Subscribe to our mailing list to get the monthly update.