By: |

Code 39 vs Code 128

Code 39 and Code 128 both are types of linear barcodes that provide several benefits by enhancing corporate operations and improved asset management. Both barcodes are best in their way and are used in different industries according to their specifications.

Difference between Code 39 and Code 128

Code 39

Code 128

Visual Representation
code 39
code 128
Character Type

Numeric values (0-9), Alphabetical letters (A-Z), special characters (-, $, ., /, +, %, space) and additional Start /Stop character (*)

Supports all 128 ASCII characters in three different code sets, including 103 data characters, 3 start and 2 stop characters

Bar Structure

Included 2 bars in different sizes and uses Five bars and four spaces to signify one character.

Included 4 bars in different sizes, three bars and three spaces signify one character.

Data Density



Error Detection

Check digit is not required

Detect Errors by using a modulo-103 check digit

Aplication Areas
  • Used by Automobile Industry Action Group (AIAG) and Electronic Industry Alliance (EIA)
  • Used in vehicle identification numbers (VIN) across the world.
  • Used by the U.S. Department of Defense for military equipment.
  • Used by the Health Industry Business Communication Council (HIBCC) in the medical sector.
  • Used in the healthcare sector to label products and items for blood donation.
  • To automate shipment and monitoring, companies like FedEx utilize Code 128 barcodes on packing slips.
  • Used for ordering and distributing in the transportation and logistics sectors
  • Used as Serial Shipping Container Codes (SSCC) in the supply chain industry.

Code 39

The Code 39 barcode, commonly referred to as Code 3 of 9, Alpha39, Type 39, etc. is the low-density alpha-numeric barcode that needs large space to store data. It is invented by Dr. David Allais and Raymond Stevens in the year 1974.

In its original layout, each character had two wide bars and one wide space, making a total of 40 characters available. Code 39 got its name from the 39 characters that were left after setting aside one character as a start and stop sequence. Later, this character set expands to 43 characters.

In this barcode, there are nine components in each character. Six of them are narrow and three are wide. The width ratio between narrow and wide elements can be selected between 1:2 and 1:3. Code 39 is still a common and useful option because it does not require the creation of a check digit.

Code 128

The Code 128 Barcode (also known as UCC/EAN-128) is a high-density alphanumeric barcode that is used in a variety of applications where it is necessary to encode a lot of data in a little amount of space. It is invented by Ted Williams in the year 1981. There are three different Code 128 code sets: Code 128 set A, Code 128 set B, and Code 128 set C.

Code Set A

ASCII characters (numerical digits (0-9), Uppercase letters (A-Z), and control codes), and special characters.

Code Set B

ASCII characters (Uppercase letters (A-Z), lowercase letters (a-z), numerical digits (0-9)), and special characters.

Code Set C

Only numerical digits (0-9) (encoded in pairs).

The start bar, data to be stored, check digit, and stop bar are all components of code 128. It provides verification protection by using byte parity checking and a checksum digit.

Advantages of Code 128 and Code 39 Barcodes

Code 39

  • This barcode is compatible with the majority of the barcode scanners.
  • It is generally safer and less vulnerable to incorrect encoding and decoding.
  • A single print error cannot cause the character to be misrepresented as another character because of self-checking.

Code 128

  • It has the capability to store almost all the types of special characters.
  • It increases data security for encoded data and reduces the possibility of scanning errors.
  • It is compact in size and can store a large amount of data in less space.

Limitations of Code 39 and Code 128 Barcodes

Code 39

  • Like any other linear barcode, the Code 39 barcode is vulnerable to damage and distortion.
  • Due to the large width size, this barcode becomes harder to scan as compared to code 128 barcodes.
  • It is not appropriate for the products that need to store a large amount of information.

Code 128

  • To scan these Code 128 barcodes, the most advanced scanners are required.
  • It is very challenging to print these types of barcodes that contain four distinct width variants for each character.
  • High-quality printers are required to print these code 128 barcodes.


Here, we discuss different parameters that differentiate code 39 from code 128. It is noted that these two types of barcodes are not suitable for the products sold in retail stores. (You can use EAN and UPC barcodes for retail products).