EBCDIC

Extended Binary Coded Decimal Interchange Code

Der EBCDIC-Code stellt (wie jeder andere Zeichencode) eindeutige Beziehungen zwischen Bitmustern und Zeichen dar.
Der Code wurde von IBM entwickelt und vorwiegend auf großen Computer-Systemen eingesetzt. EBCDIC verwendet 8 Bit-Worte und kann daher 256 Zeichen darstellen.
EBCDIC ist nicht kompatibel mit den auf PC meist eingesetzten ISO-8859-Codes. Ein großer Nachteil sind die zahlreichen EBCDIC-Dialekte, welche vor allem die Interpunktion und Sonderzeichen betreffen.
Zeichencodes PC-Codes für Buchstaben, Ziffern und Sonderzeichen
EBCDIC Allgemeine Information
Code-Tabelle Zuordnung Bitmuster ↔ Zeichen in EBCDIC
Dialekte Unterschiede häufiger EBCDIC-Dialekte
Links Ausgewählte Links zum Thema 'EBCDIC'

EBCDIC

Der EBCDIC-Code verwendet 8 Bit zur Darstellung eines Zeichens und kann daher insgesamt 2^8=256 verschiedene Zeichen darstellen. Er wurde von IBM für Lochkarten entwickelt und folgerichtig auch auf den Groß-Computern dieses Herstellers verwendet.
IBM engagierte für den minder eingeschätzten PC-Markt die (damals wertlose) Firma Microsoft und verlor durch diese kapitale Fehlentscheidung den Anschluss an die PC-Welt. Heute stellen EBCDIC-Großrechner aussterbende Inseln im PC-Meer dar.
Der mit PC nicht kompatible Zeichencode wurde einige Zeit erfolgreich dazu eingesetzt, Kunden zu Produkten eines Herstellers zu nötigen: Wer große Daten-Mangen in EBCDIC codiert hat, scheut das Risiko eines Umstiegs auf einen anderen Code.
Heute ist dieses Argument wertlos, denn eine Übersetzung ist (vom einmaligen Aufwand abgesehen) problemlos.

EBCDIC-Dialekte:

Die Codierung von Ziffern und der lateinischen Buchstaben ist in allen Versionen einheitlich. Interpunktion und Sonderzeichen unterscheiden sich allerdings erheblich, je nach 'Dialekt'.
Gängige EBCDIC-Dialekte codieren alle oder zumindest fast alle Zeichen des → ASCII-Codes, darüber hinaus die wichtigsten Zeichen von → ISO-8859-1.
Diese Zeichen und das Kontrollzeichen LF (linefeed) werden durch viele der EBCDIC-Dialekte unterschiedlich codiert:
\ [ ] { } ^ ~ ! # | $ @ `

Aus einem unbekannten Grund ist es extrem schwierig, zuverlässige Zeichen-Tabellen für EBCDIC zu erhalten. Es scheint sich um gut gehütete Geheimnisse zu handeln..
Einige EBCDIC-Dialekte werden durch ihre CCSID-Zahl (Character Code Set Identification Number) beschrieben.
CCSID 0037 wird u.a. auf AS-400 Systemen eingesetzt.
CCSID 1047 wird u.a. auf Systemen OS/390, z/OS und VM/ESA eingesetzt.
POSIX-BC wird u.a. auf Siemens BS2000 eingesetzt.

Darüber hinaus gibt es unzählige nationale EBCDIC-Varianten, z.B. Arabic EBCDIC, Chinese EBCDIC, Greek EBCDIC, ...
Die IANA-Liste der Zeichencodes führt >80 verschiedene EBCDIC-Varianten an.

Algorithmus:

EBCDIC codiert zusammenhängende Zeichen (z.B. Groß-Buchstaben) in getrennten Blöcken. Das macht es fast unmöglich, einen Algorithmus für die Code-Übersetzung anzugeben. Die Übersetzung erfolgt deshalb mit Hilfe von Tabellen (lookup tables).

Für die Kommunikation zwischen EBCDIC - Computern und PC oder dem Internet muss jedes einzelne Zeichen laufend in beide Richtungen übersetzt werden . .

EBCDIC-Tabellen für Hexadezimale Adressierung

Achtung: Alle Angaben ohne Gewähr !
EBCDIC 0037 (AS400)
  0123 4567 89AB CDEF
0 NULLSOHSTXETX C28HTC6DEL C23C13C14VT FFCRSOSI
1 DLEDC1DC2DC3 C29 C5 BSC7 CANEMC18C15 FSGSRSUS
2 C0C1C2C3 C4LFETBESC C8C9C10C11 C12ENQACKBEL
3 C16C17SYNC19 C20C21C22EOT C24C25C26C27 DC4NAKC30SUB
4  xâä àáãå çñ¢. <(+|
5 &éêë èíîï ìß!$ *);¬
6 -/ÂÄ ÀÁÃÅ ÇѦ, %_>?
7 øÉÊË ÈÍÎÏ Ì ` :# @'="
8 Øabc defg hi«» ðýþ±
9 °jkl mnop qrªº æ¸Æ¤
A µ ~ st uvwx yz¡¿ ÐÝÞ®
B ^ £¥· ©§¼ ½¾ [ ] ¯¨´×
C { ABC DEFG HI­ô öòóõ
D } JKL MNOP QR¹û üùúÿ
E \ ÷ST UVWX YZ²Ô ÖÒÓÕ
F 0123 4567 89³Û ÜÙÚC31

Links die Zeichen-Tabelle für den EBCDIC-Code 0037 (ohne Gewähr !).

Nicht druckbare Kontrollzeichen sind hellgelb unterlegt.

Zeichen, welche je nach EBCDIC-Dialekt unterschiedlich codiert werden, sind rot geschrieben.
Die ↓ Vergleichs-Tabelle im nächsten Absatz listet nur diese Positionen. Alle anderen Zeichen sollten unabhängig vom jeweiligen EBCDIC-Dialekt sein und können daher aus der Tabelle für Code 0037 entnommen werden.

Die Steuerzeichen C1..C31 (Customer Use) entsprechen den ISO-Zeichen #80..#9F. Für die Übersetzung von Texten haben allerdings nur wenige Steuerzeichen Bedeutung, sie stammen alle aus dem ISO-Bereich #00..#1F, z.B. HT, LF, CR

EBCDIC-Vergleichs-Tabelle

Diese Tabelle enthält nur jene Zeichen, welche in den einzelnen EBCDIC-Dialekten erfahrungsgemäß unterschiedlich codiert werden. Alle anderen Zeichen sollten unverändert mit der ↑ Tabelle von Code 0037 übereinstimmen.
Tabelle einiger EBCDIC-Dialekte
ISOEBCDIC
DecHexChr 00371047POS-BC
10#0ALF372121
33#21!909090
91#5B[186173187
92#5C\224224188
93#5D]187189189
94#5E^17695106
96#60`12112174
123#7B{192192251
124#7C|797979
125#7D}208208253
126#7E~161161255
133#85CU5213737
159#9FCU3125525595
162#A2¢7474176
166#A6¦106106208
168#A8¨189187121
172#AC¬95176186
175#AF¯188188161
217#D9Ù253253224
219#DBÛ251251221
221#DDÝ173186173
249#F9ù221221192

Links der ISO-8859-1 Teil, nach dem die Tabelle sortiert ist: Dezimale und hexadezimale Code-Zahl sowie das ISO-Zeichen.

Rechts der EBCDIC-Teil: Eine eigene Spalte für jeden hier angeführten Dialekt, darin der dezimale Code.

Beispiel:
Das Zeichen \ (Backslash) ist nach ISO mit dem Code 92. (#5C) verknüpft. In der gleichen Zeile rechts finden sie die EBCDIC-Codes:
Bei CCSID 0037 und CCSID 1047 dezimal 224., bei POSIX-BC dezimal 188.

Beispiel:
Das Zeichen Ä ist nicht in dieser Tabelle enthalten. Es wird daher in allen gängigen EBCDIC-Dialekten gleich codiert. In der ↑ Gesamt-Tabelle finden sie für das Zeichen (Zeile 6, Spalte 3) den hexadezimal-Code #63 oder dezimal 99.

Hinweis:
Alle Angaben ohne Gewähr !
Leider ist es unglaublich schwierig, zutreffende Informationen zu den einzelnen EBCDIC-Dialekten zu erhalten. Falls sie Daten von oder nach EBCDIC übersetzen müssen, dann sollten sie das Verfahren vor der Anwendung besonders sorgfältig testen.


XHTML CSS