Seturile de cod A, B și C
Code 128 comută între trei seturi de cod pentru a potrivi eficient diferite feluri de date. Setul A acoperă literele mari, cifrele și caracterele de control; setul B acoperă literele mari și mici, cifrele și semnele de punctuație; setul C împachetează două cifre în fiecare caracter de simbol, ceea ce face numerele lungi foarte compacte.
Fiecare caracter de simbol are 11 module lățime, format din 3 bare și 3 spații, iar modelul de stop are 13 module. Un codificator poate comuta seturile în mijlocul codului de bare pentru a-l ține cât mai scurt.
Caracterul de control
Fiecare cod de bare Code 128 se încheie cu un caracter de control obligatoriu. Se calculează adunând valoarea caracterului de start la suma valorilor fiecărui caracter de date înmulțite cu poziția lui, apoi luând restul împărțirii la 103. Caracterul de control nu apare în textul lizibil.
GS1-128 în logistică
GS1-128 este Code 128 cu un caracter FNC1 după start, care marchează conținutul ca identificatori de aplicație GS1. Este codul de bare liniar standard de pe etichetele de expediere și de paleți, unde poartă adesea un SSCC (identificator de aplicație 00) împreună cu GTIN-uri, numere de lot și date.
Code 128 este specificat în ISO/IEC 15417 și este larg folosit pentru expediere, depozitare și etichete interne.