Code 128 was created by Ted Williams and introduced by Computer Identics in 1981. It packs more data into a label than older codes such as Code 39 and can encode the full ASCII set. Every character is 11 modules wide and made of three bars and three spaces, each 1 to 4 modules wide. A symbol has five parts:
-
1. Quiet zones: blank margins before and after the bars.
-
2. Start character: Start A, B or C, which also picks the first code set.
-
3. Data characters: the encoded text. Code A, Code B, Code C and Shift characters switch code sets inside the symbol.
-
4. Check character: calculated from the start and data characters, so a misread is caught.
-
5. Stop character: 13 modules, with an extra bar that ends the symbol.
The same data can be encoded with different combinations of start, code set and shift characters, and encoders pick the shortest. A long number in Code Set C takes about half the space it would in Code Set B.