kaffeeringe.de

Standards: Schei� Codierung

Miss X / photocase.com

Wer kennt das Problem nicht: Die Umlaute fehlen in einem Text: stattdessen nur Fragezeichen oder komische Symbole. Der Grund dafür sind unterschiedliche Zeichenkodierungen. UTF-8 ist eine Verfahren Zeichen aus verschiedenen Sprachen einheitlich darzustellen. Um verständlich zu machen, wie das geht und was die Vorteile davon sind, greif ich mal ein wenig in die Klamottenkiste.

ASCII

Ende der 1960er Jahre sind eine ganze Menge schlauer Sachen erfunden worden: Die Mouse, das @-Zeichen und zum Beispiel auch ASCII. ASCII steht für American Standard Code for Information Interchange und bedeutet, dass es sich dabei um einen amerikanischen Standard für den Austausch von Zeichen handelt. ASCII hat festgelegt, dass bestimmte Bitfolgen für bestimmte Buchstaben stehen:

  • A = 01000001
  • B = 01000010
  • C = 01000011

Man hat hier nur 7-Bit definiert – das erste Bit in Standard 8-Bitsystemen ist damit immer eine 0. Damit kann man 128 verschiedene Buchstaben und Zahlen definieren. Den Amerikanern hat das gereicht – das Englische hat keine Umlaute. Im Deutschen möchte man aber gerne das Ö und im Dänischen das Ø benutzen. Das geht mit ASCII nicht.

ISO 8859

Ende der 1990er hat man sich dann international zusammengesetzt und eine Standard entwickelt: ISO 8859 nutzt das 8te Bit mit und verdoppelt damit die Zahl der möglichen Zeichen. Da selbst 128 zusätzliche Zeichen nicht reichen, um alle Zeichensysteme der Welt abzudecken, hat man mehrere Unterstandards entworfen. Die sind durch die Endnummer bezeichnet: ISO 8859-1 umfasste in den ersten 128 Zeichen den normalen ASCII-Zeichensatz und darüber unter anderem die deutschen Umlaute (öäüÖÄÜ) das ß usw. Dieser Standard wurde dann durch ISO 8859-15 ersetzt, um zum Beispiel das Euro-Zeichen (€) aufzunehmen.

Das hat dann ganz okay funktioniert, solange man nur einen solchen Zeichensatz auf einer Website benutzen musste. Man hat auf einer deutschen Internetseite einfach die Ausgabe so eingestellt, dass sie ISO 8859-15 ausgibt und konnte damit hervorragend deutsche, aber zum Beispiel auch dänische Texte anzeigen lassen. Es ist aber vollkommen unmöglich damit Chinesisch oder ähnliche abgefahrene Sachen anzuzeigen. Dazu benötigt man mehr Platz für Zeichen.

UTF-8

Hier setzt UTF-8 an: UTF-8 bedeutet 8-bit UCS Transformation Format und der Standard nutzt ein bis vier 8-Bit-Folgen. Einfachstes Beispiel: Es wird nur eine 8-Bitfolge genutzt, dann entsprechen die Bitmuster ASCII. Das wären theoretisch über 4 Billionen Zeichen möglich. Das wird aber wieder eingeschränkt, so dass aber immerhin noch 1.114.112 Möglichkeiten zur Verfügung stehen. Ein Beispiel dafür, was damit jetzt möglich ist, zeigt der UTF-8-Sampler.

Beliebt ist UTF-8 in vielen modernen Softwareanwendungen gerade dann, wenn verschiedene System interagieren. Viele APIs geben UTF-8 aus, weil es dann nicht zu Schwierigkeiten durch unterschiedliches Encoding kommen kann.

Links

Foto: Miss X / photocase.com

Kommentare

ritinardo

Hallo Steffen,

Du hast da einen Aspeket unerwähnt gelassen, der entscheidend ist fürs Web:

Vor einigen Jahren galt noch bei HTML 3.2 ISO-8859-1 als Standard. D.h. konkret (angedeutet hast Du das ja), dass ein Dokument das kein Encoding angegeben hat von den BROWSERN so dargestellt wurde.

Mit HTML4 und XHTML wurde nun UTF-8 zum Standard und dann im Zuge dessen zumindest ab glaube ich Firefox 3.x(?) auch die Annahmen die Browser trafen, wenn die Angabe fehlte. Das führte in Deutschland zumindest dazu das hunderttausende Webseiten von einem Tag auf den anderen keine vernünftigen Umlaute mehr hatten. Es war schon bei HTML 3.2 angesagt für korrekte Dokumente die Kodierung anzugeben. Aber kaum jemand machte das. Heute siehst Du einfach, welche Websites ein wenig Grundverständnis haben und welche nicht. Das ist nachwievor ja so, dass Du so schlechte Seite überall findest. Früher haben ein die Leute halt ausgelacht, wenn man sich DocumentTypeDefinitions (DTDs) angeschaut und daraus gelernt hat. Diese Webdesigner lachen immer noch weils sie es immer noch nicht geschnallt haben, dass ihre Werke der letzten 10 Jahre alle unlesbar sind, weil sie es verhunzt haben. Nicht etwa, weil sich Standards geändert hätten. Wer es wissen wollte, konnte schon damals sehen, wie es richtig geht.

Steffen

Danke Thilo für die Ergänzung. Den Artikel hatte ich ursprünglich für das Zikula-Wiki geschrieben. Nachdem ich heute aber jemandem bei einem Umlaute-Problem in E-Mails helfen musste, habe ich das Thema für mich noch einmal aufgewärmt und es auch hier im Blog noch einmal aufgedröhselt. Deswegen war Web gar nicht mein erste Gedanke.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Möchtest Du benachrichtigt werden, wenn Dir hier jemand antwortet?