Der EAN Strichcode
Dieser Code dient zur maschinellen Erfassung von
Zahlen. Heute werden viele Produkte mit einem
Strichcode versehen, um sie mit automatischen
Lesegeräten identifizieren zu können.
Der Scanner einer Warenhauskassa liest genau diesen
Code ein, ermittelt anhand einer firmenweiten
Datenbank den Verkaufspreis und aktualisiert auch
gleich den Warenbestand.
Die Europäische ArtikelNummer
ist nach der DIN 66236 festgelegt.
EAN-13
Dieser Code besteht aus 13 Dezimalziffern, wie
etwa 4957054071493 (dies ist der Strichcode unserer
Masterkeyboards aus dem EDV-Raum).
Manchmal wird er auch so angeschrieben: 49-57054-07149-3
Der grundlegende Aufbau:
- die ersten beiden Ziffern stehen für
ein Land. So bedeutet 49 im obigen Beispiel
Japan.
- es folgen 5 Ziffern, die für den Produzenten
im Land (etwa die Herstellerfirma) stehen.
Oben steht 57054 für die Firma Roland.
- Nun folgen 5 Stellen für die Produktnummer.
07149 bezeichnet das Midi Controller Keyboard
PC-180A
- Die letzte Stelle ist eine Prüfziffer,
um die Korrektheit der 12 Stellen abzusichern
(mit 10% Fehlerwahrscheinlichkeit, wie Du
gleich sehen wirst)
Ländercodes
Mit dem Anwachsen der Anzahl wichtiger Produktionsländer
sind 2 Stellen nicht mehr ausreichend. Deshalb
nimmt man die erste Stelle des Firmencodes als
Landesanteil für kleine Länder. Besonders
große Produzenten erhielten mehrere Nummern,
da man pro Nummer ja nur 100000 Produzenten angeben
kann.
Beispiele für Ländercodes: 90-91 Österreich,
40-43 Deutschland, 00-13 USA und Kanada, 30-37
Frankreich, 482 Ukraine, 484 Moldawien, 485 Armenien,
99 für Geschenkgutscheine, usw.
Die Prüfziffer
Sie entsteht aus einer gewichteten Summe der 12
Code-Ziffern. Man bildet die Summe aus 3 mal letzte
Stelle +1 mal vorletzte + 3 mal vorvorletzte +
1 mal vorvorvorletzte usw.
Im obigen Beispiel 3x9+1x4+3x1+1x7+3x0+1x4+3x5+1x0+...
wobei sich 117 ergibt. Die Prüfziffer ist
nun die Zahl, die diese Summe zu einer durch 10
teilbaren Zahl ergänzt, in unserem Fall also
3.
Zusammengefasst für unser Beispiel:
Länder-
code |
Hersteller |
Produkt |
Prüf-
ziffer |
| 49 |
57054 |
07149 |
3 |
| Japan |
Roland |
PC-180A |
|
Der Strichcode
Seine Erstellung ist etwas tüftelig. Die Zahlen
werden in Bitcodes umgewandelt. Wert 1 bedeutet
eine Linie, Wert 0 einen Zwischenraum. So ergibt
etwa 101011100001 zwei dünne Streifen mit
schmalem Zwischenraum, dann einen dicken, einen
breiten Zwischenraum und schließlich noch
eine dünnen Streifen.
Eigentlich kodiert EAN zwei getrennte Zifferngruppen
mit je 6 Stellen. Jede Ziffer ergibt ein Muster
aus zwei Streifen und 2 Zwischenräumen ganz
spezieller Breite. Die dreizehnte Stelle (es ist
die erste Ziffer des Codes) wird trickreich in
den ersten Sechserblock verschlüsselt.
Weiters werden am Anfang, am Ende und in der Mitte
spezielle Strichcodes eingefügt, um den Lesegeräten
Vergleichswerte für die Breite der folgenden
Striche zu bieten (die Größe des Strichcodes
ist nicht festgelegt) und eine Adaption zu erlauben,
wenn nicht mit konstanter Geschwindigkeit gescannt
wird. Das Lesegerät liefert ja nur eine Aufzeichnung
von 'hell' und 'dunkel'-Werten verteilt über
die Zeit des Einlesens.
| Randzeichen |
Teil 1
|
Trennzeichen |
Teil 2
|
Randzeichen |
|
101
|
Stellen 2 bis 7 |
01010
|
Stellen 8 bis 12 |
101
|
Für die Bitmuster, in die die Ziffern übersetzt
werden, gibt es drei Zeichensatztabellen
| Ziffer |
Zeichensatz A |
Zeichensatz B |
Zeichensatz C |
0
1
2
3
4
5
6
7
8
9 |
0001101
0011001
0010011
0111101
0100011
0110001
0101111
0111011
0110111
0001011 |
0100111
0110011
0011011
0100001
0011101
0111001
0000101
0010001
0001001
0010111 |
1110010
1100110
1101100
1000010
1011100
1001110
1010000
1000100
1001000
1110100 |
So wird 4 im Zeichensatz B in das Muster 0111001
verwandelt, was eine kurze Lücke, eine dreifach
dicken Streifen, dein Doppellücke und einen
Einserstreifen bedeutet.
Die Sätze A und B beginnen immer mit 0 und
einden mit 1, bei C ist es umgekehrt. Satz C entsteht
aus A durch Vertauschen von 0 und 1 im Muster,
B ist das gespiegelte Muster aus C. Die Auswahl
wurde so getroffen, dass wenig 'Ähnlichkeiten'
auftreten und niemals Striche oder Lücken
benachbarter Codes aneinander stoßen, um
einen ständigen Wechsel von dunkel und hell
zu erzielen. Deshalb muss C auch "umgedreht"
mit 0 und 1 sein, denn es stößt ja
direkt an das Randzeichen am Ende, das mit einer
1 beginnt. A hat ungerade Parität (ungerade
Anzahl von Einsen), C (und B) gerade Parität.
Daran kann ein Lesegerät erkennen, von welcher
Seite der Code gescannt wurde.
Leicht erklärt ist die Kodierungsvorschrift
für den zweiten Zahlenteil: hier wird immer
der Zeichensatz C verwendet.
Im Teil 1 muss aber zusätzlich die erste Ziffer
verschlüsselt werden, weshalb man die Zeichensätze
A und B wechselweise verwendet. Folgende Tabelle
wird angewendet:
erste
Stelle |
Zeichensatz für die Stelle |
| 2 |
3 |
4 |
5 |
6 |
7 |
|
0
1
2
3
4
5
6
7
8
9
|
A
A
A
A
A
A
A
A
A
A
|
A
A
A
A
B
B
B
B
B
B |
A
B
B
B
A
B
B
A
A
B |
A
A
B
B
A
A
B
B
B
A |
A
B
A
B
B
A
A
A
B
B |
A
B
B
A
B
B
A
B
A
A |
In unserem Beispiel 4957054 ist die erste Stelle
4 und somit die Zeichensatzliste ABAABB. Demnach
wird 9 mit A, 5 mit B, 7 und 0 mit A, 5 und 4
mit B kodiert.
Wenn Du es selbst versuchen willst:
Unser Beispiel liefert
101 als Startrandzeichen
0001011 0111001 0111011 0001101 0111001 0011101
für den Teil 1
01010 als Trennzeichen
1110010 1000100 1100110 1011100 1110100 1000010
für den Teil 2
101 als Endrandzeichen.

Diesen Code habe ich übrigens mit dem zugehörigen
Python-Programm ean.py
erzeugt. Lade es Dir herunter und experimentiere
selbst!
Der EAN-ISBN-Code
Der Ländercode 978 wurde für die Codierung
von Büchern reserviert. Deshalb beginnt der
EAN Code auf jedem Buch mit diesem Wert.
Darauf folgt die ISBN Nummer ohne die zugehörige
ISBN-Prüfziffer (wenn Du wissen willst, wie
sie definiert ist, dann schau im Python-Programm
nach), und am Ende die sich daraus ergebende EAN
Prüfziffer.
Der EAN-8 Kurzcode
Auf speziellen Antrag bekommen Firmen eine Kennung
mit 2 Nullen am Schluss. Haben sie dann maximal
100 Artikel zu verzeichnen, wird z.B. der österreichische
dreizehnercode 90-12300-00058-x verkürzt
zu 90-12358-x, indem man die mittleren Nullen
unterdrückt.
Der Kurzcode ist also achtstellig und wird folgendermaßen
kodiert:
Zuerst ein Randzeichen, dann die ersten 4 Stellen
mit Zeichensatz A, das Trennzeichen, dann die
zweiten 4 Stellen nach Zeichensatz C, schließlich
das Randzeichen am Ende. Fertig.
Aufgabe: kodiere Dein Geburtsdatum nach EAN-8 (für
den 4. Juli 1901 etwa 04071901).
Anhang
Die Liste der Ländercodes nach der aktuellen
Festlegung des Standards
| 00-13: USA & Canada |
20-29: In-Store Functions |
30-37: France |
| 40-44: Germany |
45: Japan (also 49) |
46: Russian Federation |
| 471: Taiwan |
474: Estonia |
475: Latvia |
| 477: Lithuania |
479: Sri Lanka |
480: Philippines |
| 482: Ukraine |
484: Moldova |
485: Armenia |
| 486: Georgia |
487: Kazakhstan |
489: Hong Kong |
| 49: Japan (JAN-13) |
50: United Kingdom |
520: Greece |
| 528: Lebanon |
529: Cyprus |
531: Macedonia |
| 535: Malta |
539: Ireland |
54: Belgium & Luxembourg |
| 560: Portugal |
569: Iceland |
57: Denmark |
| 590: Poland |
594: Romania |
599: Hungary |
| 600 & 601: South Africa |
609: Mauritius |
611: Morocco |
| 613: Algeria |
619: Tunisia |
622: Egypt |
| 625: Jordan |
626: Iran |
64: Finland |
| 690-692: China |
70: Norway |
729: Israel |
| 73: Sweden |
740: Guatemala |
741: El Salvador |
| 742: Honduras |
743: Nicaragua |
744: Costa Rica |
| 746: Dominican Republic |
750: Mexico |
759: Venezuela |
| 76: Switzerland |
770: Colombia |
773: Uruguay |
| 775: Peru |
777: Bolivia |
779: Argentina |
| 780: Chile |
784: Paraguay |
785: Peru |
| 786: Ecuador |
789: Brazil |
80 - 83: Italy |
| 84: Spain |
850: Cuba |
858: Slovakia |
| 859: Czech Republic |
860: Yugloslavia |
869: Turkey |
| 87: Netherlands |
880: South Korea |
885: Thailand |
| 888: Singapore |
890: India |
893: Vietnam |
| 899: Indonesia |
90 & 91: Austria |
93: Australia |
| 94: New Zealand |
955: Malaysia |
977: International Standard Serial Number
for Periodicals (ISSN) |
| 978: International Standard Book Numbering
(ISBN) |
979: International Standard Music Number
(ISMN) |
980: Refund receipts |
| 981 & 982: Common Currency Coupons |
99: Coupons |
|