While there’s no maximum length for this barcode, it can be made as long as necessary to include all encoded data. It supports only alphanumeric or numeric information. Similar in structure to Code 39, Code 128 is often the preferred symbology both for its high-density nature and its ability to encode a much larger selection of characters.
Despite its name and its ability to encode all 128 ASCII characters, Code 128 does not have 128 symbols. Instead, it uses 108 symbols: 103 encode data, 3 indicate barcode starts, and 2 specify barcode stops. Code 128 also has seven distinct sections:
- The Quiet Zone
- A Start Symbol
- All Encoded Data
- The Check Symbol
- A Stop Symbol
- The Final Bar
- A Second Quiet Zone
The minimum width of both quiet zones is 10x, where “x” is the width of a single data module.
It’s also worth noting that Code 128 contains three distinct subsets for data encoding. Which subset is used depends on the start code, and multiple subsets can be used in a single barcode by leveraging specific “switch” characters. Subsets A, B, and C each encode different data:
- Subset A – Numeric digits along with uppercase letters, ASCII symbols, and control codes
- Subset B – Numeric digits, both upper and lowercase letters, ASCII symbols, and control codes
Subset C – Numeric digits only. By compressing two numeric digits into each character, it’s possible to significantly increase code density. In the case of an odd number of digits, a leading “0” is typically encoded.