Accesskey n springt zur Seitennavigation. Springe zum Inhalt.

Dieses Dokument ist eine Übersetzung. Im Falle von Abweichungen oder Fehlern sollte das aktuelle englische Original als maßgeblich angenommen werden. Das W3C besitzt das Copyright am Original, wie unten beschrieben.

Übersetzer: Gunnar Bittersmann

s_gotoW3cHome Internationalisierung
 

Eine Zeichencodierung wählen und anwenden

Zielgruppe: XHTML/HTML-Autoren (die Web-Editoren/Texteditoren oder Scripte benutzen), Script-Entwickler (PHP, JSP u.a.), CSS-Entwickler, Webprojekt-Manager und alle, die eine Anleitung suchen, wie man eine Zeichencodierung wählt und anwendet

Frage

Welche Zeichencodierung sollte ich für meinen Inhalt wählen und wie wende ich diese auf meinen Inhalt an?

Hintergrund

Inhalt setzt sich aus einer Sequenz von Zeichen zusammen. Zu den Zeichen gehören die Buchstaben des Alphabets, Interpunktionszeichen usw. In einem Computer wird der Inhalt jedoch als eine Sequenz von Bytes gespeichert, das sind Zahlenwerte. Manche Zeichen werden durch mehr als ein Byte dargestellt. Wie bei Chiffren in der Spionage hängt die Art, wie Sequenzen von Bytes in Zeichen umgewandelt werden, von dem Schlüssel ab, mit dem der Text codiert wurde. Den Schlüssel nennt man in diesem Kontext Zeichencodierung.

Es stehen viele Zeichencodierungen zur Auswahl. Dieser Artikel gibt Ihnen einfache Ratschläge, welche Zeichencodierung Sie für Ihre Inhalte verwenden sollten und wie man diese anwendet, d.h. wie man ein Dokument in dieser Zeichencodierung erstellt.

Wenn Sie besser verstehen möchten, was Zeichen und Zeichencodierungen sind, lesen Sie den Artikel Zeichencodierung für Anfänger.

Antwort

Verwenden Sie möglichst eine Unicode-Codierung

Eine HTML-Seite kann nur in einer Zeichencodierung codiert sein. Man kann nicht verschiedene Teile eines Dokuments in verschiedenen Zeichencodierungen codieren.

Eine Unicode-Codierung wie UTF-8 kann viele Sprachen unterstützen und Seiten und Formulare mit beliebig gemischten Sprachen in Einklang bringen. Verwendet man eine Unicode-Codierung, benötigt man keine serverseitige Logik, um für jede ausgelieferte Seite oder alle hereinkommenden Formulardaten gesondert die Zeichencodierung zu bestimmen. Das verringert den Bearbeitungsaufwand bei einer mehrsprachigen Website oder Applikation deutlich.

Eine Unicode-Codierung erlaubt es auch, viel mehr Sprachen auf einer Webseite gemischt zu verwenden als es bei jeder anderen Zeichencodierung möglich wäre.

Die Hürden bei der Verwendung von Unicode sind heutzutage sehr niedrig. Im August 2010 gab Google bekannt, dass über 50% des Webs bei mehreren Milliarden untersuchter Webseiten jetzt UTF-8 verwenden. Zählt man die Zahl der reinen ASCII-Webseiten hinzu (ASCII ist eine Teilmenge von UTF-8), erhöht sich der Wert auf annähernd 70%.

Es gibt 3 verschiedene Unicode-Zeichencodierungen: UTF-8, UTF-16 und UTF-32 (siehe Zeichensätze, codierte Zeichensätze und Zeichencodierungen). Von diesen wird UTF-8 zur Verwendung für Web-Inhalte empfohlen. Der aktuelle Entwurf der HTML5-Spezifikation sagt: „Autoren sollten UTF-8 verwenden. Validatoren können Autoren daruf hinweisen, keine veralteten Zeichencodierungen zu verwenden. Autorenwerkzeuge sollten UTF-8 als Voreinstellung für neue Dokumente verwenden.“

Alle ASCII-Zeichen werden in UTF-8 durch exakt dieselben Bytes codiert wie in der ASCII-Codierung, was oft hilfreich für Interoperabilität und Rückwärtskompatibilität ist.

Dass ein Browser eine bestimmte Zeichencodierung (im Speziellen eine Unicode-Codierung) unterstützt, führt nicht zwangsläufig dazu, dass der Text auch korrekt angezeigt wird. Einige Schriftsysteme wie das arabische oder indische Schriften verlangen zusätzliche Regeln, um die Bytesequenz im Speicher in die richtige Sequenz von Glyphen für die Anzeige umzusetzen.

Wenn Sie keine Unicode-Codierung verwenden: Wählen Sie eine Zeichencodierung, die es gestattet, möglichst viele Zeichen direkt zu repräsentieren und möglichst wenige Zeichen durch Zeichen-Escapes darstellen zu müssen.

Wenn Sie für eine bestimmte Sprache, Schrift oder Menge von Sprachen die Wahl haben, wählen Sie die am besten unterstütze Zeichencodierung und prüfen Sie, ob Browser die gewählte Zeichencodierung richtig unterstützen.

Suchen Sie nach der Lösung mit der geringsten Komplexität beim Umgang mit mehreren Sprachen und Schriften.

Vermeiden Sie diese Zeichencodierungen

Die HTML5-Spezifikation nennt einige Zeichencodierungen, die Sie vermeiden sollten.

Dokumente sollten nicht JIS_C6226-1983, JIS_X0212-1990, HZ-GB-2312, JOHAB (Windows code page 1361), ISO-2022-basierte Codierungen oder EBCDIC-basierte Codierungen verwenden. Der Grund ist, dass darin ASCII-Zeichencodes Nicht-ASCII-Zeichen repräsentieren, was eine Sicherheitslücke darstellt.

Dokumente dürfen nicht CESU-8, UTF-7, BOCU-1 oder SCSU-Codierungen verwenden; diese waren nie für Web-Inhalte vorgesehen.

Die Spezifikation rät auch von der Verwendung von UTF-32 ab.

Die Zeichencodierung auf den Inhalt anwenden

Als Autor sollten Sie prüfen, dass Ihr Editor oder Ihre Scripte Text in der gewünschten Zeichencodierung speichern.

Entwickler müssen auch sicherstellen, dass die verschiedenen Teile des Systems miteinander kommunizieren können; verstehen, welche Zeichencodierungen verwendet wurden und alle benötigten Zeichen und Zeichencodierungen unterstützen.

Es ist wichtig zu verstehen, dass es zur Änderung der Zeichencodierung eines Dokuments nicht genügt, nur die Angabe der Zeichencodierung am Anfang der Seite oder auf dem Server zu ändern. Das ändert nicht die Bytes; man muss den Text erneut speichern – in eben dieser Zeichencodierung. (Die Angabe hilft dem Browser lediglich, die Bytesequenz zu interpretieren, in welcher der Text gespeichert ist.)

Der Artikel Einstellung der Zeichencodierung in Web-Editoren und Texteditoren gibt Ratschläge, wie man die Zeichencodierung beim Speichern einstellt (für eine Reihe verschiedener Editoren).

Am besten stellt man eine Zeichencodierung wie UTF-8 in seinem Editor als Voreinstellung für neue Dokumente ein, sofern das möglich ist. Das folgende Bild zeigt, wie man das in den Einstellungen von Dreamweaver tut.

In Dreamweaver erlauben es die Einstellungen für neue Dokumente, eine Zeichencodierung voreinzustellen.

Sie sollten auch prüfen, dass der Server Dokumente mit den richtigen HTTP-Angaben ausliefert, denn diese überschreiben die Angaben innerhalb des Dokuments (siehe nächsten Abschnitt).

Warum erkennt der Browser immer noch nicht die Zeichencodierung?

Nehmen wir an, Sie haben Ihre Daten als UTF-8 gespeichert. Obwohl Sie Ihre Seite in der richtigen Zeichencodierung gespeichert haben und Sie auch innerhalb der Seite angegeben haben, dass die Seite UTF-8-codiert ist, kann es sein, dass der Server die Seite immer noch mit einem zugehörigen HTTP-Header ausliefert, der etwas anderes sagt.

Jede Angabe im HTTP-Header überschreibt die Angabe innerhalb der Seite, was zu Problemen mit Ihrem Inhalt führen kann.

Sie haben vielleicht keine Kontrolle über die Angaben im HTTP-Header und müssen diejenigen kontaktieren und um Hilfe bitten, die Ihren Server betreiben. Andererseits gibt es mitunter Möglichkeiten, Dinge auf dem Server zu beheben, wenn man eingeschränkten Zugriff auf Serverkonfigurationsdateien hat oder seine Seiten mit Scriptsprachen generiert. Siehe bspw. Einstellung des HTTP-charset-Parameters für weitere Informationen, wie man die Zeichencodierungsangabe ändert, entweder lokal für eine Auswahl von Dateien auf dem Server oder für mittels Scriptsprache generierten Inhalt.

Bevor Sie das tun, sollten Sie prüfen, ob dies tatsächlich die Ursache des Problems ist oder nicht. Sie können den W3C-Internationalization-Checker verwenden um herauszufinden, ob eine Zeichencodierung im HTTP-Header angegeben ist und wenn ja, welche. Der Artikel HTTP-Header überprüfen verweist alternativ auf einige andere Tools, mit denen Sie die Zeichencodierungsangabe des Servers prüfen können.

Sagen Sie uns, was Sie denken (auf Englisch).

Abonnieren Sie unseren RSS-Feed.

Neue Ressourcen

News auf der Startseite

Twitter (News auf der Startseite)

‎@webi18n

Literaturhinweise

Autor: Richard Ishida, W3C. Übersetzer: Gunnar Bittersmann.

Valides XHTML 1.0!
Valides CSS!
Kodiert in UTF-8!

Übersetzung der englischen Version vom 2010-08-12. Letzte Änderung der übersetzten Version am 2011-04-15 14:30 GMT.

Suchen Sie nach qa-choosing-encodings im i18n-Blog, um alle Dokumentänderungen nachzuvollziehen.