# Code128

Der Code 128 (1981) ist ein alphanumerischer Strichcode (Barcode) mit hoher Informationsdichte. Der Prinzipaufbau eines Code-128-Symbols besteht aus einem Startzeichen, der Nutzinformation, der Prüfziffer und dem Stoppzeichen. Vor dem Startzeichen und hinter dem Stoppzeichen muss ein weißer Bereich (Hellfeld bzw. Ruhezone) mit einer Breite von jeweils mindestens zehn Modulen freigehalten werden.
Der Code 128 ist in der internationalen Norm ISO/IEC 15417:2007 vollständig beschrieben.
Der Code ist ein Mehrbreitencode bestehend aus einer Abfolge von Symbolen.

## 109 Barcode-Muster

Jedes Symbol ist elf Module breit. Die Grundbreite ist die Breite des schmalsten Striches, ein Modul. Jeweils drei Balken und drei Zwischenräume von jeweils maximal vier Modulen Breite bilden das Codemuster für ein Symbol. Jedes Symbol ist durch die Angabe der sechs Streifen-Weiten eindeutig bezeichnet. So ergeben sich 109 verschiedene dedizierte Barcodemuster, die jeweils ein Zeichen codieren. Diese bilden das Alphabet. Dazu gehören drei unterschiedliche Startzeichen, ein Stop-Zeichen sowie bis zu acht Steuerbefehle.

## Besondere Symbole

Das Stop-Zeichen ist aus 13 Modulen mit vier Strichen aufgebaut.
Die drei verschiedenen Start-Zeichen (A, B, C) definieren den gültigen Zeichensatz und damit die Bedeutung der folgenden Symbole. Der Wechsel des Zeichensatzes innerhalb eines Lesesymbols wird durch kontextabhängige Sonderfunktionscodes gesteuert. Diese Steuerzeichen können am besten als Satzzeichen aufgefasst werden, die die Informationen strukturieren. Es sind permanente Zeichensatzwechsel oder temporäre, die nur für ein einziges Folgezeichen gelten, definiert. Weiterhin existieren Sonderfunktionscodes, die die Zwischenspeicherung von Präfixcodes oder die Kennzeichnung von Sondereinsatzgebieten steuern. Es besteht darüber hinaus die Möglichkeit zur Kombination mehrerer nacheinander gelesener Lesesymbole.
* Zeichensatz A enthält Ziffern, Großbuchstaben, Sonderzeichen und ASCII-Steuerzeichen.
* Zeichensatz B enthält Ziffern und alle Groß- und Kleinbuchstaben sowie Sonderzeichen und Umschaltzeichen.
* Zeichensatz C ordnet den Barcodemustern 100 Wertepaare von „00“ bis „99“ zu (plus Sonderzeichen FNC1). Dabei wird eine zweistellige Zahlenfolge durch ein einziges Barcode-Zeichen dargestellt. Es ist speziell für numerische Erfordernisse gedacht.

## Aufbau des Barcodes

Der Barcode ergibt sich aus
* einer „Ruhezone“ als Freibereich (mindestens 10 Module)
* dem Startzeichen für Code 128 A, B oder C (11 Module)
* der gewünschten Zeichenfolge (Vielfaches von 11 Modulen)
* einer Prüfsumme (11 Module)
* dem Stop-Zeichen (13 Module)
* und einer weiteren „Ruhezone“ (mindestens 10 Module)
Die Prüfsumme wird aus der gewichteten Summe der Zeichenwertigkeiten (Tabellenindizes) als Teilungsrest modulo 103 berechnet und unmittelbar vor dem Stop-Zeichen in den Barcode eingefügt.

## Verwendung

Der Code 128 ist Basis des GS1-128, der von den speziellen Eigenschaften Verkettung, Zeichensatzwechsel und Präfixcode expliziten Gebrauch macht. Früher wurde der GS1-128 als EAN-128 bezeichnet. Durch die Namensänderung der dahinterstehenden Organisation zu GS1 (Global Standards ONE) wurde auch der Name auf GS1-128 geändert. Die Besonderheit ergibt sich aus dem strukturierten Codeinhalt für GS1 Anwendungen. Die Vorgaben für normierte Datenstrukturen sind in der internationalen Norm ISO/IEC 15418 zu finden.

## Eigenschaften

Der Aufbau ist selbstüberprüfend, da die Anzahl der als Balken dargestellten Module stets gerade, die Anzahl der Zwischenraummodule ungerade ist.
Da der Code128 (wie auch andere Strichcodes) seine Information über die Strichbreiten und Strichpositionen kodiert, ist ein präziser Codedruck erforderlich, um die kodierte Information zuverlässig wieder auslesen zu können.
Der Code ist im Unterschied zu älteren Codes wie z. B. 2/5 nicht kontextfrei, die Interpretation eines Zeichens wird also durch voranstehende Zeichen bestimmt.