2026-04-21 Aktualisiert 2026-08-04 Knowledge Base

Code 128 vs. Code 39: Welchen Barcode-Standard sollten Sie wählen?

TL

Geschrieben von

Bereit zum Generieren von Barcodes?

Erstellen Sie hochwertige Etiketten in Sekundenschnelle.

Generator starten →

Bei der Einrichtung eines internen Inventar- oder Logistiksystems stehen Sie oft vor der Wahl zwischen zwei klassischen Barcode-Symboliken: Code 128 und Code 39. Beide sind linear, beide verarbeiten Buchstaben und Ziffern, und auf den ersten Blick wirken sie austauschbar. Das sind sie nicht — und die falsche Wahl zeigt sich später in Form zu breiter Etiketten, fehlschlagender Scans oder einer Integration, die mehr Pflege braucht als nötig.

Lineare (1D) Codes sind nach wie vor das Fundament der physischen Warenverfolgung. Anders als QR-Codes oder DataMatrix, die einen kamerabasierten Imager benötigen, lässt sich ein linearer Barcode mit einem einfachen, günstigen Laserscanner lesen. Wenn Sie Lagerplätze kennzeichnen, Anlagegüter etikettieren oder Regale organisieren, läuft die Entscheidung fast immer auf diese beiden Industriestandards hinaus.

Dieser Artikel gibt nicht die üblichen Zahlen wieder: sämtliche Breitenangaben unten wurden auf dem Generator gemessen, der diese Website betreibt — Symbol für Symbol. Zwei Aussagen, die auf dieser Seite bisher standen, haben die Messung nicht überlebt.


1. Code 39: der Pionier der Industriestandards

1974 von Intermec eingeführt, war Code 39 (auch „3 of 9“ geschrieben) der erste alphanumerische Barcode. Der Name beschreibt seinen Aufbau: Jedes Zeichen besteht aus neun Elementen — Strichen und Lücken — von denen genau drei breit sind.

Wir haben das am kürzestmöglichen Symbol geprüft, mit einem einzigen Datenzeichen. Das vollständige Symbol enthält dann drei Zeichen (Start *, Daten, Stopp *): Der Generator erzeugt 29 Elemente, davon 9 breite — also exakt 3 × 9 Elemente mit 3 × 3 breiten, plus die Zwischenzeichenlücken. Das gemessene Verhältnis breit zu schmal beträgt 3:1 und liegt damit im normkonformen Bereich (2:1 bis 3:1).

Zeichensatz und Grenzen

In der Grundversion ist Code 39 selbstprüfend und deckt 43 Zeichen ab:

  • Großbuchstaben A bis Z
  • Ziffern 0 bis 9
  • Einige Sonderzeichen: Leerzeichen, -, ., $, /, +, %
  • Das Sternchen (*), reserviert als Start- und Stoppzeichen. Scanner geben es nicht an das System weiter; es markiert nur Anfang und Ende des Codes.

Es gibt eine erweiterte Variante „Full ASCII“, die Kleinbuchstaben und die übrigen 128 ASCII-Zeichen kodieren kann — allerdings, indem sie je zwei Standardzeichen zu einem kombiniert (aus einem kleinen „a“ wird +A).

Der gemessene Preis dieses Tricks: Sechs Großbuchstaben belegen 127 X, dieselben sechs Buchstaben als Kleinbuchstaben über Full ASCII belegen 223 X — das 1,76-Fache. Der Faktor liegt nicht exakt bei 2, weil der feste Overhead aus Start und Stopp nicht mitverdoppelt wird; auf Zeichenebene ist die Verdopplung dagegen exakt.


2. Code 128: der moderne Leistungsstandard

1981 von Computer Identics entwickelt, sollte Code 128 genau das Größenproblem von Code 39 lösen — bei gleichzeitig stärkerer Fehlerprüfung und voller Tastaturunterstützung.

Vollständiges ASCII und Zeichensätze

Code 128 kodiert alle 128 ASCII-Zeichen — Kleinbuchstaben, Satzzeichen, sogar Steuerzeichen. Das gelingt ohne aufgeblähtes Symbol durch drei Zeichensätze (A, B und C), zwischen denen er mitten im Code umschaltet:

  • Satz A — Ziffern, Großbuchstaben und Steuerzeichen.
  • Satz B — Ziffern, Groß- und Kleinbuchstaben sowie Standard-Satzzeichen.
  • Satz C — Ziffernpaare. Statt einer Ziffer pro Symbol kodiert er zwei Ziffern in einem einzigen Muster.

Die Breitenformel, gemessen

Hier wird der Vergleich konkret. Misst man Symbole steigender Länge, folgt die Breite beider Symboliken einer exakten Geraden:

Symbolik Symbolbreite (in X-Modulen)
Code 39 31 X + 16 X × Zeichenanzahl
Code 128 35 X + 11 X × Zeichenanzahl

Die 16 X von Code 39 lassen sich genau zerlegen: 6 schmale Elemente (6 X) + 3 breite Elemente (9 X) + 1 X Zwischenzeichenlücke. Code 128 berechnet dagegen immer 11 Module pro Zeichen, unabhängig vom Inhalt.

Sein fester Overhead ist höher — 35 X, also drei vollständige Zeichen, von denen keines Ihre Daten trägt: Startzeichen (11 X), Prüfsumme Modulo 103 (11 X) und Stoppzeichen (13 X). Code 39 startet niedriger (31 X), zahlt aber für jedes Zeichen deutlich mehr.


3. „30 bis 50 % schmaler“: was die Messung wirklich sagt

Dieser Satz kursiert überall, und auch diese Seite hat ihn wiederholt. In dieser Form ist er falsch — er gilt nur für eine ganz bestimmte Datenart.

Alphanumerische Zeichenkette (Satz B)

Zeichen Code 39 Code 128 Ersparnis
4 95 X 79 X 17 %
6 127 X 101 X 20 %
8 159 X 123 X 23 %
10 191 X 145 X 24 %
15 271 X 200 X 26 %
20 351 X 255 X 27 %

Selbst bei 20 Zeichen bleibt der Abstand bei 27 % — unterhalb der behaupteten Untergrenze.

Rein numerische Zeichenkette (Satz C)

Ziffern Code 39 Code 128 Ersparnis
4 95 X 57 X 40 %
6 127 X 68 X 47 %
8 159 X 79 X 50 %
10 191 X 90 X 53 %
15 271 X 134 X 51 %
20 351 X 145 X 59 %

Hier hält das Versprechen — und wird sogar übertroffen. Der Grund ist direkt ablesbar: In Satz C kostet eine Ziffer 5,5 X gegenüber 16 X bei Code 39, also fast dreimal weniger.

Merksatz: Der Abstand hängt zuerst von der Art Ihrer Daten ab und erst danach von ihrer Länge. Eine alphanumerische Kennung spart Ihnen nicht das halbe Etikett.


4. Das kontraintuitive Detail: eine Ziffer mehr kann den Code schmaler machen

Beim Prüfen der obigen Tabelle fiel eine Unstimmigkeit auf: Die Ersparnis bei 15 Ziffern (51 %) ist geringer als bei 10 Ziffern (53 %). Das ist kein Messfehler.

Satz C kodiert Ziffern paarweise. Eine ungerade Ziffernanzahl geht in Paaren nicht auf: Der Generator muss für die letzte Ziffer den Zeichensatz wechseln — und zahlt dafür ein volles Zeichen.

Ziffern Code 128 Veränderung
12 101 X
13 123 X +22 X
14 112 X −11 X
15 134 X +22 X
16 123 X −11 X

Lesen Sie die dritte Zeile: Ein Code mit 14 Ziffern ist schmaler als einer mit 13 Ziffern. Eine Ziffer hinzuzufügen — etwa eine führende Null — spart 11 X Breite.

Das ist kein Lehrbuchfall. Das verbreitetste numerische Format im Handel, die 13-stellige GTIN, fällt genau in diese Falle: Die Stellenzahl ist ungerade, und der Code zahlt den Aufschlag.


5. Direkter technischer Vergleich

Merkmal Code 39 Code 128
Einführungsjahr 1974 1981
Breite pro Zeichen 16 X 11 X (5,5 X pro Ziffer in Satz C)
Fester Overhead 31 X 35 X
Zeichensatz Großbuchstaben, Ziffern, 7 Symbole Vollständiges ASCII inkl. Kleinbuchstaben
Numerische Komprimierung Keine Ja — zwei Ziffern pro Symbol
Selbstprüfend Ja Ja
Prüfziffer Optional (Modulo 43) Obligatorisch (Modulo 103)
Typische Branchen Verteidigung, Automotive, Elektronik Logistik (GS1), Lagerhaltung, Versand
Risiko von Fehllesungen Gering, aber vorhanden Extrem gering

6. Zwei Beispiele, die die Entscheidung greifbar machen

Nehmen wir zwei Kennungen aus dem Alltag.

Ein Lagerplatzcode, REG-A1 (6 alphanumerische Zeichen): Code 39 = 127 X · Code 128 = 101 X · Ersparnis: 20 %. Real, aber nicht ausschlaggebend. Wenn Ihr Scannerpark alt ist, sollte nicht diese Zahl die Entscheidung tragen.

Eine Artikelnummer, 4006381333931 (13 Ziffern): Code 39 = 239 X · Code 128 = 123 X · Ersparnis: 49 % (nicht ~55 %, wegen der ungeraden Ziffernanzahl von oben).

In Millimeter übersetzt, auf einem 203-dpi-Thermodrucker mit einem X-Modul von 0,250 mm (2 Punkte):

  • In Code 39: 59,8 mm
  • In Code 128: 30,8 mm
  • Differenz: 29,0 mm

Fast drei Zentimeter auf einem einzigen Etikett. Das ist der Unterschied zwischen „passt auf 40-mm-Material“ und „wir müssen breiteres bestellen“.


7. Wann welcher Standard sinnvoll ist

Code 39 bleibt sinnvoll, wenn:

  1. Ihre Hardware alt ist. Betagte Inventarsysteme, Lesestifte oder Maschinen ohne moderne Decoder-Firmware lesen Code 39 problemlos, weil er so einfach aufgebaut ist.
  2. Ihre Codes kurz und alphabetisch sind. Eine Regalnummer REG-A1 oder eine Raumkennung RAUM-102 bleibt in vernünftiger Länge, und Sie müssen sich um keine Prüfziffer kümmern.
  3. Ihre Software einfach gehalten ist. Wenn Sie aus einer Barcode-Schriftart drucken und die Zeichenkette lediglich in Sternchen einfassen (*REG101*), kommt Code 39 ohne Bibliothek zur Prüfsummenberechnung aus.

Code 128 ist die bessere Voreinstellung, wenn:

  1. Der Platz knapp ist. Kleinteile, Ampullen, Anlagegüter, Dokumentenetiketten: Das kompakte Layout spart Material.
  2. Ihre Daten lang oder numerisch sind. Nur hier überschreitet der Abstand tatsächlich die 50 %. Und denken Sie an die Parität der Ziffernanzahl.
  3. Sie Kleinbuchstaben oder Satzzeichen brauchen. In Code 39 wird dieselbe Zeichenkette 1,76-mal breiter; in Code 128 ist sie 55 % schmaler als ihr Full-ASCII-Gegenstück.
  4. Fehllesungen teuer sind. In der Pharmalogistik, bei Wertgütern oder in Kuriersortierungen ist die obligatorische Modulo-103-Prüfsumme eine günstige Versicherung.

Fazit

Code 39 bleibt ein robuster, einfacher Pionier, der in Legacy-Umgebungen, im militärischen Bereich und in geschlossenen Industriesystemen weiterhin seine Berechtigung hat. Für allgemeine Logistik, Versand und die meisten betrieblichen Inventare ist Code 128 der Standard der Wahl: dichter, vollständiges ASCII, mit obligatorischer Prüfsumme.

Wichtiger ist aber die Nuance, die erst die Messung sichtbar gemacht hat: Sein Dichtevorteil beträgt 20 % bei einem Lagerplatzcode und 49 % bei einer Artikelnummer. Entscheiden Sie anhand Ihrer tatsächlichen Daten, nicht anhand einer pauschalen Zahl.

Unabhängig von der gewählten Symbolik zählt am Ende ein sauberer Druck, der beim ersten Versuch gelesen wird. Normkonforme Code-128- und Code-39-Symbole in hochauflösendem SVG oder PDF erzeugen Sie mit unserem Code-128-Generator.


Verwandte Artikel

TL
Software Engineer

Tomasz ist ein Full-Stack-Softwareentwickler mit Hintergrund in Supply-Chain-Technologie und Logistiksystemen. Er entwickelte BarcodeReady, um ein echtes Problem zu lösen: das Fehlen eines schnellen, kostenlosen und standardkonformen Barcode-Generators, der vollständig im Browser funktioniert.

Bereit zum Generieren von Barcodes?

Erstellen Sie hochwertige Etiketten in Sekundenschnelle.

Generator starten
Zurück zur Wissensdatenbank