Menü

EAN und UPC Prüfziffern für Barcodes erklärt

EAN und UPC Prüfziffern stehen am Ende eines Barcodes: eine gewichtete Summe, die je nach Länge von einer anderen Seite aus beginnt, und anschließend das Auffüllen zum Modul.

Veröffentlicht am

  • Validierung
  • Barcode
  • Prüfziffer

Jeder Handelsbarcode endet mit einer Ziffer, die überhaupt nicht zur Identität des Artikels gehört. Sie ist Arithmetik: eine gewichtete Summe der Ziffern davor, auf ein einzelnes Zeichen reduziert und mitgedruckt, damit ein Scanner oder ein Mensch, der die Zahlen unter den Balken liest, erkennen kann, ob der Code unbeschadet geblieben ist.

EAN und UPC sind die beiden Familien, denen die meisten zuerst begegnen, und sie sind so nah verwandt, dass oft dieselbe Routine beide bedient. Die Unterschiede sind klein, positionsabhängig und leicht falsch zu machen; deshalb konzentriert sich dieser Beitrag darauf, wo die Arithmetik beginnt, und weniger auf die Arithmetik selbst.

Woher stammt die letzte Ziffer eines Barcodes?

Das Muster ist das bekannte. Jede der vorangehenden Ziffern wird mit einem Gewicht multipliziert, die Produkte werden addiert, und die Summe wird in ein einzelnes abschließendes Zeichen verwandelt. Bei den hier beschriebenen Barcode-Familien wechseln die Gewichte zwischen eins und einem größeren Wert, und die letzte Ziffer entsteht, indem man die Summe bis zum nächsten Vielfachen von zehn auffüllt.

Der Zweck ist eng und konkret. Ein Barcode wird von einer Maschine gelesen, die einen Balken falsch lesen kann, und die abschließende Ziffer sorgt dafür, dass die meisten Fehllesungen auffallen, bevor der falsche Artikel abgerechnet wird. Sie ist eine Einrichtung zur Fehlererkennung für einen gestörten Kanal und kein Zeugnis über irgendetwas.

Weil die Summe immer nur die Ziffern des Codes selbst umfasst, lässt sich die letzte Ziffer aus jeder Kandidatenzeichenkette neu berechnen. Das macht die Prüfung billig genug, um bei jedem Scan zu laufen, und es ist zugleich der Grund, warum ein bestehender Code kein Beleg für den Artikel dahinter ist.

Die Codes in diesem Beitrag werden beschrieben und nicht abgedruckt. Kein echter Produktbarcode wird wiedergegeben, und ein beschriebenes Schema ist eine öffentliche Konvention und keine Aussage über einen Artikel in einem Regal.

EAN-13 und UPC-A: zwei gängige Längen, verschiedene Gewichtsstarts

Die beiden Familien teilen ihre Arithmetik und unterscheiden sich in den Einzelheiten ringsum.

Eigenschaft EAN-13 UPC-A
Gesamtlänge Die längere der beiden Die kürzere der beiden
Gewichtsmuster Wechselnd, von einer Seite beginnend Wechselnd, von der anderen Seite beginnend
Wo zu sehen Handelsartikel international Handelsartikel in Nordamerika
Verhältnis Der kürzere Code kann mit einer vorangestellten Ziffer im längeren mitgeführt werden Eine Teilmenge derselben Arithmetikfamilie

Das Verhältnis der beiden ist der Grund, warum Bibliotheken oft eine einzige Funktion anbieten, die zuerst die Länge bestimmt und danach den Gewichtsstart wählt. Eine Routine, die unabhängig von der Länge ein einziges Gewichtsmuster annimmt, berechnet eine Prüfziffer, die für jeden Code der anderen Größe falsch ist — und sie tut das mit Überzeugung, sodass der Wert erst an echten Daten auffällt.

Die Namen sind hier genau zu verwenden. EAN-13 und UPC-A sind genormte Bezeichnungen für zwei bestimmte Formate, und jede Handelsnummer mit einem von beiden zu benennen ist eine kleine Gewohnheit, die beim ersten Mal zu einem echten Fehler führt, wenn eine Routine beide annehmen muss.

Die Idee, von rechts zu gewichten

Die Gewichte wechseln, und darüber, welche Position welches Gewicht erhält, entscheidet sich die Richtigkeit. In diesen Schemata ist der Wechsel am rechten Ende verankert, sodass die Ziffer unmittelbar vor dem Prüfzeichen stets dasselbe Gewicht trägt und das Muster von dort nach links wächst.

Die Verankerung rechts statt links ist es, was eine einzige Routine über mehrere Längen hinweg arbeiten lässt. Wäre das Muster links verankert, würde das Hinzufügen einer Ziffer die Parität jeder Position umdrehen und die Bedeutung des Codes vollständig ändern. Die Verankerung rechts bedeutet, dass die unmittelbare Umgebung des Prüfzeichens stabil bleibt und die zusätzliche Ziffer ganz links einfach ein weiterer Summand ist.

Dies ist die häufigste Quelle von Eins-daneben-Fehlern in Barcode-Code. Sie ist zugleich billig zu testen: Erzeugen Sie einen gültigen Code, prüfen Sie ihn mit der Routine und verlängern Sie ihn dann um eine führende Ziffer, um erneut zu prüfen. Eine auf der falschen Seite verankerte Routine widerspricht sich bei einer der beiden Längen.

Was ein Barcode-Präfix sagt und was nicht

Die führenden Ziffern eines Handelscodes sind Nummerierungsorganisationen zugeteilt, und die Zuteilung ist veröffentlicht. Es liegt nahe, sie als Aussage darüber zu lesen, wo ein Artikel hergestellt wurde, und diese Lesart ist falsch. Die Zuteilung benennt die Organisation, die die Nummer registriert hat, und eine registrierte Organisation kann ihre Waren überall auf der Welt fertigen lassen.

Der physische Etikettendruck fügt eine zweite Unschärfe hinzu. Derselbe Artikel kann einen in einem Land gedruckten Code tragen und in einem anderen verpackt werden, und ein Unternehmen kann Registrierungen unter mehr als einer Zuteilung halten. Wer das Präfix als Herkunftsmerkmal behandelt, erzeugt überzeugte und falsche Beschaffungsaussagen.

Für eine Entwicklerin ist das eine Warnung vor schleichender Ausweitung. Der Barcode kann sagen, ob die Ziffern in sich stimmig sind, und er kann sagen, welche Organisation die Nummer registriert hat, wenn man die veröffentlichte Zuteilung heranzieht. Alles darüber hinaus gehört zu einem anderen System mit anderen Daten.

Heißt eine bestandene Prüfung, dass der Barcode scannt?

Nein, und die beiden Fehlerarten verdienen eine Trennung. Die Prüfziffer schützt davor, dass die Ziffern falsch sind; über den Druck sagt sie nichts. Verschmierte, abgeschnittene oder in falscher Vergrößerung gedruckte Balken und solche auf gewölbter Oberfläche können einen Scanner überwinden, obwohl die Ziffern darunter einwandfrei stimmig sind.

Ebenso wenig beweist ein korrekter Code, dass der Artikel in Ihrem Katalog existiert. Ein wohlgeformter Code kann auf einen Artikel verweisen, den Sie nie geführt haben, oder auf einen Code, der überhaupt nie vergeben wurde. Katalogzugehörigkeit und rechnerische Stimmigkeit sind unabhängige Eigenschaften; deshalb braucht ein Wareneingang neben der Prüfung auch einen Abgleich mit der eigenen Liste.

Der umgekehrte Fall ist ebenso wichtig. Eine Fehllesung, die ein Scanner still korrigiert, oder ein Code, der die Prüfung wegen eines beschädigten Etiketts nicht besteht, ist kein Hinweis auf Betrug. Er ist ein Hinweis auf das Etikett.

Für Entwickler: Massenprüfung und Fehler lokalisieren

Die Barcode-Prüfung kommt meist in Mengen daher, wodurch zwei kleine Entwurfsentscheidungen groß werden.

  1. Bestimmen Sie die Länge allein aus den Ziffern und wählen Sie den Gewichtsstart danach aus der Länge. Verlassen Sie sich nicht darauf, dass die aufrufende Stelle ansagt, welche Familie sie sendet.
  2. Weisen Sie unzulässige Zeichen zurück, bevor die Summe läuft, damit eine eingefügte Beschreibung nicht zu einem rätselhaften Prüfsummenfehler wird.
  3. Sagen Sie im Fehlerfall, ob die Länge falsch war oder die letzte Ziffer nicht passte; diese beiden Meldungen schicken eine Nutzerin zu völlig verschiedenen Abhilfen.
  4. Melden Sie bei der Prüfung einer Datei die Zeile und den empfangenen Wert, damit eine Lagerkraft das betreffende Etikett findet.

Jedes Schema hier gehört zu derselben modulbasierten Familie wie die übrigen in der Übersicht der Prüfziffernverfahren, was nützlich ist, wenn eine Routine mehrere Arten von Codes bedienen muss. Buch- und Seriennummern folgen demselben Prinzip mit eigenen Eigenheiten, behandelt unter ISBN und ISSN Prüfziffern.

Nächste Schritte

Wählen Sie je einen gültigen Code aus beiden Längen und bestätigen Sie, dass Ihre Routine beide annimmt; ändern Sie dann in jedem eine einzelne Ziffer und bestätigen Sie, dass sie beide zurückweist. Prüfen Sie anschließend, was Ihr System tut, wenn die Arithmetik besteht, der Code aber in Ihrem Katalog fehlt — das Werkzeug zur Nummernprüfung zeigt, wie ein Prüfer ein Ergebnis formuliert, das allein die Ziffern betrifft.

Weiterlesen

Artikel zu Prüfer für Kreditkarten- und SSN-Nummern