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 ei­nen Aspeket un­er­wähnt ge­las­sen, der ent­schei­dend ist fürs Web:

Vor ei­ni­gen Jahren galt no­ch bei HTML 3.2 ISO-8859-1 als Standard. D.h. kon­kret (an­ge­deu­tet hast Du das ja), dass ein Dokument das kein Encoding an­ge­ge­ben hat von den BROWSERN so dar­ge­stellt wur­de.

Mit HTML4 und XHTML wur­de nun UTF-8 zum Standard und dann im Zuge des­sen zu­min­dest ab glau­be ich Firefox 3.x(?) auch die Annahmen die Browser tra­fen, wenn die Angabe fehl­te. Das führ­te in Deutschland zu­min­dest da­zu das hun­dert­tau­sen­de Webseiten von ei­nem Tag auf den an­de­ren kei­ne ver­nünf­ti­gen Umlaute mehr hat­ten. Es war schon bei HTML 3.2 an­ge­sagt für kor­rek­te Dokumente die Kodierung an­zu­ge­ben. Aber kaum je­mand mach­te das. Heute siehst Du ein­fach, wel­che Websites ein we­nig Grundverständnis ha­ben und wel­che nicht. Das ist nach­wie­vor ja so, dass Du so schlech­te Seite über­all fin­dest. Früher ha­ben ein die Leute halt aus­ge­lacht, wenn man si­ch DocumentTypeDefinitions (DTDs) an­ge­schaut und dar­aus ge­lernt hat. Diese Webdesigner la­chen im­mer no­ch weils sie es im­mer no­ch nicht ge­schnallt ha­ben, dass ih­re Werke der letz­ten 10 Jahre al­le un­les­bar sind, weil sie es ver­hunzt ha­ben. Nicht et­wa, weil si­ch Standards ge­än­dert hät­ten. Wer es wis­sen woll­te, konn­te schon da­mals se­hen, wie es rich­tig geht.

Steffen

Danke Thilo für die Ergänzung. Den Artikel hat­te ich ur­sprüng­li­ch für das Zikula-Wiki ge­schrie­ben. Nachdem ich heu­te aber je­man­dem bei ei­nem Umlaute-Problem in E-Mails hel­fen mus­s­te, ha­be ich das Thema für mi­ch no­ch ein­mal auf­ge­wärmt und es auch hier im Blog no­ch ein­mal auf­ge­dröh­selt. Deswegen war Web gar nicht mein er­s­te 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?