Das Problem

Am Anfang war das Wort.

Und wenn auch für den Herrn Faust die Übersetzung eines einzigen Wortes schon ein nicht unbeträchtliches Problem darstellte, konnte er sich doch glücklich schätzen, damit lediglich auf dem Papier und nicht etwa in elektronischer Form konfrontiert zu sein. Denn dann hätten sich zu den intellektuellen Problemen bei der Übersetzung auch leicht technische Probleme bei deren Darstellung einstellen können. Und wer weiß, wie die Geschichte dann ausgegangen wäre. Doch da Herr Faust mit der Gnade der frühen Geburt gesegnet war, blieben ihm die Computer und alle Schwierigkeiten der Zeichendarstellung erspart.

Uns leider nicht. Denn auf dem Gebiet der Computertechnologien waren in der Anfangszeit hauptsächlich Pioniere aus dem englischsprachigen Raum tätig. Das ist zwar grundsätzlich nichts Negatives, aber das Englische ist völlig frei von Umlauten oder Akzenten aller Art, so dass die Repräsentation von Zeichen (sprich: Buchstaben) leider für große Teile der Welt unzureichend geriet. Bei der Zusammenstellung, welche Zeichen in einem Computer darstellbar sein sollten, kamen die Wissenschaftler nämlich zu dem Schluss, dass es so auf den ersten Blick vollkommen ausreichend wäre, wenn es 128 verschiedene darstellbare Zeichen in einem Computer gäbe. Die lassen sich prima mit 7 Bit darstellen, und da das Byte als eine Standardgröße in der Informatik aus 8 Bit besteht, passen also alle Zeichen bequem in ein Byte. Man muss zur Ehrenrettung der damaligen Entscheidungsträger natürlich anmerken, dass Speicher zur damaligen Zeit eine teure Ressource war, so dass die Beschränkung auf ein Byte auch sehr praktische Gründe hatte. Die Konvention, welche Zeichen auf welche Bitfolge abgebildet werden, erhielt den Namen ASCII (American Standard Code for Information Interchange).

ASCII Tabelle
…0 …1 …2 …3 …4 …5 …6 …7 …8 …9 …A …B …C …D …E …F
0… NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1… DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2… SP ! " # $ % & ' ( ) * + , - . /
3… 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4… @ A B C D E F G H I J K L M N O
5… P Q R S T U V W X Y Z [ \ ] ^ _
6… ` a b c d e f g h i j k l m n o
7… p q r s t u v w x y z { | } ~ DEL

In der Tabelle kann man die Kodierung für die dargestellten Buchstaben ablesen, z.B. das große S steht in Zeile 5… und in Spalte …3, es wird also hexadezimal als 53 kodiert, macht im Dezimalsystem 83 (5*16 + 3*1). Alle Applikationen, die Texte bearbeiten oder anzeigen wollten, konnten sich also darauf verlassen: wenn man eine 83 in einer Datei findet, die als Text interpretiert werden soll, stellt dies ein großes S dar und muss entsprechend angezeigt bzw. verarbeitet werden. Pro Buchstabe ein Byte, Wörter sind Kombinationen von Buchstaben, dieses einfache Prinzip spiegelte sich natürlich auch in der Art und Weise wider, wie grundlegende Funktionalität auf Wortebene in den Computersprachen umgesetzt wurde. Da wurde zur Bestimmung der Wortlänge einfach die Anzahl der Bytes im Wort bestimmt, einen Buchstaben abschneiden war gleichbedeutend mit ein Byte abschneiden, Großbuchstaben (zwischen 65 und 90) verwandeln sich in Kleinbuchstaben, indem man 32 addiert usw.

Dann kamen die Europäer: Deutsche mit Umlauten, Franzosen mit Akzenten usw.

Jetzt stellte sich schnell heraus, dass die ursprünglich einkalkulierten 7 Bit etwas knapp bemessen waren. Die Bezeichnung American Standard Code for Information Interchange war leider ziemlich ungenau: gemeint war vielmehr Standard Code for US-American Information Interchange. Tatsächlich lassen sich auf diese Weise eben nicht textliche Informationen aller Art problemlos darstellen, sondern leider nur ein relativ eingeschränkter Teil davon. Und da Europa wirtschaftlich keine so unbedeutende Region war, musste das Problem schnell und unbürokratisch aus der Welt geschafft werden. Zum Glück (oder im Nachhinein betrachtet muss man sagen: leider) war die Kapazität des Bytes ja noch nicht ganz ausgeschöpft: 8 Bit stehen zur Verfügung, 7 sind belegt, damit bleiben (nach Adam Riese ähm George Boole) genau 128 zusätzlich darstellbare Zeichen übrig, das sollte für die paar zusätzlichen Umlaute und Akzentzeichen ja wohl reichen.

Und so wurde dann festgelegt, durch welche Kodierungen (sprich: Zahlen zwischen 128 und 255) die besagten Buchstaben dargestellt werden sollten. Und damit auch die Skandinavier zufrieden waren, wurden auch noch das Ø und seine Freunde eingefügt, sowie ein paar Zeichen, die von den Verwertungsgesellschaften schmerzlich vermisst wurden, wie etwa © oder §. Das Ganze erhob man dann zu einem ISO-Standard und gab ihm den einprägsamen Namen ISO-8859-1, er ist aber auch unter dem Namen Latin-1 bekannt.

Die -1 im Suffix des Namens lässt bereits erahnen, was danach passierte: Da beispielsweise auch die Polen, die Türken, die Grönländer, die Russen, die Araber, die Griechen und Hebräer und Thai bereit waren, für Computer Geld auszugeben und im Gegenzug forderten, dass sie nun auch mal gerne einen Brief in ihrer Landessprache verfassen wollten, folgten weitere Standards auf dem Fuße. Und so belegen die Standards ISO-8859-2 bis ISO-8859-16 alle den knappen Restplatz im Byte mit ihren völlig eigenen Kodierungen. Und da diese Sprachen alle zwar in den ersten Codestellen identisch sind, danach aber dasselbe Intervall belegen, sind sie natürlich größtenteils inkompatibel zueinander. Der Vollständigkeit halber sei noch erwähnt, dass das von Microsoft etablierte Codepage-1252 und ISO-8859-15 in weiten Teilen der Latin-1 Kodierung entsprechen, wobei in Codepage-1252 einige der nicht belegten Kombinationen zwischen 0x80 und 0x9F mit zusätzlichen Zeichen versehen wurden, in ISO-8859-15 jedoch einige weniger gebräuchliche Zeichen einfach umbelegt wurden.

ISO-8859-1 Tabelle
…0 …1 …2 …3 …4 …5 …6 …7 …8 …9 …A …B …C …D …E …F
0…NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1… DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2… SP ! " # $ % & ' ( ) * + , - . /
3… 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4… @ A B C D E F G H I J K L M N O
5… P Q R S T U V W X Y Z [ \ ] ^ _
6… ` a b c d e f g h i j k l m n o
7… p q r s t u v w x y z { | } ~ DEL
8… PAD HOP BPH NBH IND NEL SSA ESA HTS HTJ VTS PLD PLU RI SS2 SS3
9… DCS PU1 PU2 STS CCH MW SPA EPA SOS SGCI SCI CSI ST OSC PM APC
A… NBSP ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ SHY­ ® ¯
B… ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
C… À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
D… Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
E… à á â ã ä å æ ç è é ê ë ì í î ï
F… ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

Und daher kommt es, dass mit diesen Ansätzen der Grieche in seinem Brief eben nicht mal schnell noch ein paar freundliche Worte an seine russische Großmutter in ihrer Muttersprache anhängen kann, weil eben griechische und russische Zeichen in unterschiedlichen Zeichensätzen untergebracht sind. Natürlich gibt es auch Probleme, wenn man sich einen Text zu Gemüte führen möchte und nicht weiß, in welcher Kodierung ebendieser vorliegt. Das führte zu zahllosen Problemen etwa beim Datenaustausch in international agierenden Unternehmen und wurde im Zuge des sich etablierenden Email Protokolls auch manchem privaten Internet-Benutzer bewusst.

Schließlich geschah das Wunder: offensichtlich hatte einer der großen Entscheidungsträger vergessen, seine morgendliche Ration Soma zu sich zu nehmen und bemühte sich um eine dauerhafte Lösung des Problems, statt neues, noch komplizierteres Flickwerk zu erfinden.