startseite | archiv | bilder | bookmarks | short urls | rss reader |

Miss X / photocase.com

StandardsSchei� Codierung

Donnerstag, 12. August 2010

Wer kennt das Pro­blem nicht: Die Umlaute feh­len in einem Text: statt­des­sen nur Fra­ge­zei­chen oder komi­sche Sym­bole. Der Grund dafür sind unter­schied­li­che Zei­chen­ko­die­run­gen. UTF-​8 ist eine Ver­fah­ren Zei­chen aus ver­schie­de­nen Spra­chen ein­heit­lich dar­zu­stel­len. Um ver­ständ­lich zu machen, wie das geht und was die Vor­teile davon sind, greif ich mal ein wenig in die Klamottenkiste.

ASCII

Ende der 1960er Jahre sind eine ganze Menge schlauer Sachen erfun­den wor­den: Die Mouse, das @-Zeichen und zum Bei­spiel auch ASCII. ASCII steht für Ame­ri­can Stan­dard Code for Infor­ma­tion Inter­ch­ange und bedeu­tet, dass es sich dabei um einen ame­ri­ka­ni­schen Stan­dard für den Aus­tausch von Zei­chen han­delt. ASCII hat fest­ge­legt, dass bestimmte Bit­fol­gen für bestimmte Buch­sta­ben stehen:

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

Man hat hier nur 7-​Bit defi­niert — das erste Bit in Stan­dard 8-​Bitsystemen ist damit immer eine 0. Damit kann man 128 ver­schie­dene Buch­sta­ben und Zah­len defi­nie­ren. Den Ame­ri­ka­nern hat das gereicht — das Eng­li­sche hat keine Umlaute. Im Deut­schen möchte man aber gerne das Ö und im Däni­schen das Ø benut­zen. Das geht mit ASCII nicht.

ISO 8859

Ende der 1990er hat man sich dann inter­na­tio­nal zusam­men­ge­setzt und eine Stan­dard ent­wi­ckelt: ISO 8859 nutzt das 8te Bit mit und ver­dop­pelt damit die Zahl der mög­li­chen Zei­chen. Da selbst 128 zusätz­li­che Zei­chen nicht rei­chen, um alle Zei­chen­sys­teme der Welt abzu­de­cken, hat man meh­rere Unter­stan­dards ent­wor­fen. Die sind durch die End­num­mer bezeich­net: ISO 8859 – 1 umfasste in den ers­ten 128 Zei­chen den nor­ma­len ASCII–Zei­chen­satz und dar­über unter ande­rem die deut­schen Umlaute (öäüÖÄÜ) das ß usw. Die­ser Stan­dard wurde dann durch ISO 8859 – 15 ersetzt, um zum Bei­spiel das Euro-​Zeichen (€) aufzunehmen.

Das hat dann ganz okay funk­tio­niert, solange man nur einen sol­chen Zei­chen­satz auf einer Web­site benut­zen musste. Man hat auf einer deut­schen Inter­net­seite ein­fach die Aus­gabe so ein­ge­stellt, dass sie ISO 8859 – 15 aus­gibt und konnte damit her­vor­ra­gend deut­sche, aber zum Bei­spiel auch däni­sche Texte anzei­gen las­sen. Es ist aber voll­kom­men unmög­lich damit Chi­ne­sisch oder ähnli­che abge­fah­rene Sachen anzu­zei­gen. Dazu benö­tigt man mehr Platz für Zeichen.

UTF-​8

Hier setzt UTF-​8 an: UTF-​8 bedeu­tet 8-​bit UCS Trans­for­ma­tion For­mat und der Stan­dard nutzt ein bis vier 8-​Bit-​Folgen. Ein­fachs­tes Bei­spiel: Es wird nur eine 8-​Bitfolge genutzt, dann ent­spre­chen die Bit­mus­ter ASCII. Das wären theo­re­tisch über 4 Bil­lio­nen Zei­chen mög­lich. Das wird aber wie­der ein­ge­schränkt, so dass aber immer­hin noch 1.114.112 Mög­lich­kei­ten zur Ver­fü­gung ste­hen. Ein Bei­spiel dafür, was damit jetzt mög­lich ist, zeigt der UTF-​8-​Sampler.

Beliebt ist UTF-​8 in vie­len moder­nen Soft­ware­an­wen­dun­gen gerade dann, wenn ver­schie­dene Sys­tem inter­agie­ren. Viele APIs geben UTF-​8 aus, weil es dann nicht zu Schwie­rig­kei­ten durch unter­schied­li­ches Enco­ding kom­men kann.

Links

Foto: Miss X /​pho​to​case​.com

Kommentare

  • gravatar
    ritinardo

    12. Aug 2010

    Hallo Stef­fen,

    Du hast da einen Aspe­ket uner­wähnt gelas­sen, der ent­schei­dend ist fürs Web:

    Vor eini­gen Jah­ren galt noch bei HTML 3.2 ISO-​8859 – 1 als Stan­dard. D.h. kon­kret (ange­deu­tet hast Du das ja), dass ein Doku­ment das kein Enco­ding ange­ge­ben hat von den BROW­SERN so dar­ge­stellt wurde.

    Mit HTML4 und XHTML wurde nun UTF-​8 zum Stan­dard und dann im Zuge des­sen zumin­dest ab glaube ich Fire­fox 3.x(?) auch die Annah­men die Brow­ser tra­fen, wenn die Angabe fehlte. Das führte in Deutsch­land zumin­dest dazu das hun­dert­tau­sende Web­sei­ten von einem Tag auf den ande­ren keine ver­nünf­ti­gen Umlaute mehr hat­ten. Es war schon bei HTML 3.2 ange­sagt für kor­rekte Doku­mente die Kodie­rung anzu­ge­ben. Aber kaum jemand machte das. Heute siehst Du ein­fach, wel­che Web­sites ein wenig Grund­ver­ständ­nis haben und wel­che nicht. Das ist nach­wie­vor ja so, dass Du so schlechte Seite über­all fin­dest. Frü­her haben ein die Leute halt aus­ge­lacht, wenn man sich Docu­ment­Ty­peDe­fi­ni­ti­ons (DTDs) ange­schaut und dar­aus gelernt hat. Diese Web­de­si­gner lachen immer noch weils sie es immer noch nicht geschnallt haben, dass ihre Werke der letz­ten 10 Jahre alle unles­bar sind, weil sie es ver­hunzt haben. Nicht etwa, weil sich Stan­dards geän­dert hät­ten. Wer es wis­sen wollte, konnte schon damals sehen, wie es rich­tig geht.

    ornament
  • gravatar
    Steffen

    12. Aug 2010

    Danke Thilo für die Ergän­zung. Den Arti­kel hatte ich ursprüng­lich für das Zikula-​Wiki geschrie­ben. Nach­dem ich heute aber jeman­dem bei einem Umlaute-​Problem in E-​Mails hel­fen musste, habe ich das Thema für mich noch ein­mal auf­ge­wärmt und es auch hier im Blog noch ein­mal auf­ge­dröh­selt. Des­we­gen war Web gar nicht mein erste Gedanke.

    ornament

Einen Kommentar hinzufügen





Trackback

Trackback URL für diesen Artikel

  • Twitter / Facebook
  • Twitter
  • Facebook
  • RSS
  • RSS

 

Werbefreies Blog

Steffen Voß | Steinstraße 5 | 24118 Kiel
Tel.: +49 431 88 88 683
E-Mail: kontakt@kaffeeringe.de
Skype: steffenvoss
Jabber: kaffeeringe@jabber.ccc.de
ICQ: 447639251