कोड सेट A, B और C
Code 128 अलग-अलग तरह के डेटा को कुशलता से समाने के लिए तीन कोड सेट के बीच बदलता है। सेट A बड़े अक्षर, अंक और कंट्रोल अक्षर कवर करता है; सेट B बड़े और छोटे अक्षर, अंक और विराम चिह्न कवर करता है; सेट C हर सिंबल अक्षर में दो अंक पैक करता है, जिससे लंबी संख्याएँ बहुत कॉम्पैक्ट हो जाती हैं।
हर सिंबल अक्षर 11 मॉड्यूल चौड़ा होता है, 3 पट्टियों और 3 खाली जगहों से बना, और स्टॉप पैटर्न 13 मॉड्यूल का होता है। एन्कोडर बारकोड को जितना हो सके छोटा रखने के लिए उसके बीच में भी सेट बदल सकता है।
चेक अक्षर
हर Code 128 बारकोड एक अनिवार्य चेक अक्षर पर खत्म होता है। इसे स्टार्ट अक्षर के मान में हर डेटा अक्षर के मान को उसकी स्थिति से गुणा करके जोड़कर, फिर 103 से भाग देने पर बचे शेषफल के रूप में निकाला जाता है। चेक अक्षर मनुष्य के पढ़ने लायक टेक्स्ट में नहीं दिखाया जाता।
लॉजिस्टिक्स में GS1-128
GS1-128 वह Code 128 है जिसमें स्टार्ट के बाद FNC1 अक्षर होता है, जो सामग्री को GS1 एप्लिकेशन आइडेंटिफ़ायर के रूप में चिह्नित करता है। यह शिपिंग और पैलेट लेबल पर मानक रैखिक बारकोड है, जहाँ यह अक्सर SSCC (एप्लिकेशन आइडेंटिफ़ायर 00) के साथ GTIN, बैच नंबर और तारीख़ें रखता है।
Code 128 ISO/IEC 15417 में निर्दिष्ट है और शिपिंग, वेयरहाउसिंग और आंतरिक लेबल के लिए व्यापक रूप से इस्तेमाल होता है।