GS1-128
GS1-128 (also called UCC-128, EAN-128, and UCC/EAN-128) is a variant of Code 128 that conforms to GS1 specifications. Unlike standard Code 128, GS1-128 automatically inserts a Function Code 1 (FNC1) character after the start character, so you can insert application identifiers into the symbol to encode data such as "best before" dates, batch numbers, quantities, or weights.
GS1-128 inherits the specifications for its character set and dimensions from Code 128.
Code 128 is defined in ISO/IEC 15417 Information technology - Automatic identification and data capture techniques - Code 128 bar code symbology specification. The GS1 implementation is defined in the GS1 General Specifications document.
The symbol comprises the following elements:
Symbol characters: Most barcode symbologies print bars and spaces in only two widths (wide and narrow), but GS1-128 uses four different widths, as the UPC/EAN family does. However, whereas the UPC/EAN family uses four elements (two bars and two spaces) per character, each GS1-128 character is represented by six elements (three bars and three spaces). Although this represents a 50 percent reduction in character density, GS1-128 can represent all 128 ASCII characters. Also, unlike UPC/EAN, GS1-128 is not limited to numbers only.
Start character: GS1-128 has three different start characters, one for each of the three character code sets: Code Set A, Code Set B, and Code Set C. The start character that is used for a given barcode depends on what characters need to be encoded in that portion of the barcode.
Although a GS1-128 character set itself contains only 102 characters, this symbology supports all 128 lower ASCII characters. This is possible because GS1-128 uses three different sets of 102 characters: Code Set A, Code Set B, and Code Set C. The default code set that is used for any GS1-128 barcode is determined by the start character. However, it is possible to switch between the different character sets and use any combination of them in a single symbol. Therefore, GS1-128 gives you the greatest possible character density when encoding data.
The three character code sets can be summarized as follows:
-
Code Set A: Includes all numeric values (0-9), uppercase alphabetic characters (A-Z), punctuation marks, seven special characters, and "control" characters (ASCII values 00 through 95).
-
Code Set B: Includes all numeric values (0-9), uppercase and lowercase alphabetic characters (A-Z, a-z), punctuation marks, and seven special characters (ASCII values 32 through 127).
-
Code Set C: Includes all numeric digit pairs from 00 through 99 and three special characters. This code set is numeric-only, but any one character actually represents two digits.
GS1-128 contains a mandatory check digit that is based on the modulo 103 (mod 103) algorithm. The check digit appears just before the stop character. There is no human readable interpretation for the check digit.
The recommended minimum symbol height for manual scanning is 5.0 mm or 15 percent of the symbol width (excluding quiet zones), whichever is greater. The quiet zones must be at least 10X wide, where "X" is the current X dimension.
GS1-128 supports the following special characters:
These characters instruct the barcode reader to enable special operations and applications.
Every GS1 symbol contains one or more application identifiers in addition to the data it encodes. An application identifier is a sequence of characters that relates a data string to a physical or logical thing, such as an item number, serial number, or due date.
Each application identifier tells the user what type of data follows and defines the length and data format of that same data string. Some application identifiers specify data fields that contain a fixed number of characters, whereas others specify a variable-length data field.