A Closer Look at Code 128

I spent a little time going over the basics of Code 128 in my post Types of Barcode Symbologies, but I’d like to take a closer look at this particular symbology now.  I’ve received several questions about Code 128 in the past couple weeks, so I think it’s a good idea to provide a more thorough description of this popular symbology.

Code 128 is a high-density alphanumeric symbology that is capable of encoding the entire ASCII character set from ASCII 0 to ASCII 128.  Several standards dictate how Code 128 should be generated including GS1-128, which includes Application Identifiers (AI) to define the purpose of the encoded data.  Other standards include USS Code 128, ISS Code 128 and the Global Trade Item Number (GTIN).  Code 128 has three different subsets that are indicated by three separate start characters.  Subset A is capable of encoding alphanumeric characters, control characters and special characters.  Subset B allows encoding of all standard alphanumeric characters, plus the lower case alphabet and special characters.  And finally, Subset C compresses two digits into each character creating a much denser symbol.  Each Code 128 symbol includes (from left to right):

  • A quiet zone (at least 10 times the width of the narrowest bar/space)
  • Start character
  • Encoded data
  • Check character
  • Stop character
  • A trailing quiet zone

Each character in the barcode is composed of three bars and three spaces except for the stop character, which has four bars and three spaces.  The check character of Code 128 is a modulus 103 checksum.  Most barcode scanners easily scan code 128 by default and this symbology is a standard on nearly all varieties of barcode printing software.  Code 128 can be used for a variety of different purposes, making it the symbology of choice for many applications.  If you have any questions about Code 128 or would like to purchase barcode label software capable of creating Code 128, please feel free to contact me at ehodges@barcode.com.