Code 128 is one of the most recently adopted bar code symbologies and certainly one of the most complex.
It takes its name from the number of different characters it may encode - the full 128 ASCII character set (plus other function and special characters). This includes all the number and letter characters as well as punctuation marks and other computer related codes such as LF (Line Feed) and ESC (Escape).
As Code 128 was developed after many of today's popular symbologies had been in use for some time, its developers (Computer Identics) were able to design a code that was more capable but was also more secure and more compact than the established codes.
Code 128 uses 3 separate character sets and can switch between them by the use of special shift characters.
Code Set A includes numeric characters, punctuation, upper-case letters and computer related codes
Code Set B is similar to A but does not include the special computer codes but includes lower-case letters.
Code Set C is purely numeric. It encodes numbers in pairs, and therefore uses half the space to represent numeric data that would be taken up if Code Sets A or B were used.
There are 3 different start patterns (A,B & C) which denote which code set is used for the first digits. Thereafter the code set may be changed by the use of the Code A, Code B or Code C characters.
The structure of Code 128 dictates that an internal check digit forms part of the code. This digit is the last digit before the check character. It would not normally form part of the human readable characters.
This table shows the full Code 128 character set:
As mentioned previously, Code 128 is a relatively new code. So new that it is only just coming into widespread use. It has been introduced in a number of areas with, no doubt, many more to follow.
Of the large-scale applications so far defined, most of them fall under the GS1 umbrella.
Some of the Application Identifiers include:
The use of the Application Identifier means that codes will not be confused. Furthermore, the use of the FNC1 character eliminates the risk of non-GS1-128 symbols being read by mistake.