Der korrekte Zeichensatz ist keine Glückssache - die Darstellung von Text sollte nicht dem Zufall überlassen werden. ZDNet erklärt, wie man Zeichenkodierungen für Webseiten deklariert, welche Optionen vorhanden sind und warum man sie braucht.
Bei der Erstellung von Webseiten gibt es eine Reihe von Optionen, die Entwickler gerne übersehen. Eine solche ist die Zeichenkodierung. Sie ermöglicht es, festzulegen, welche Zeichensätze von einer Seite unterstützt werden.
Die Zeichenkodierung einer Website kann auf unterschiedlichste Weise angegeben werden, etwa im HTTP-Header oder in einem Meta-Tag. Man sollte die Zeichenkodierung immer deklarieren, um sicherzustellen, dass die Seite auch korrekt angezeigt wird.
Warum man sich über die Zeichenkodierung Gedanken machen sollte
Die mit einer Webseite verknüpfte Zeichenkodierung bestimmt, wie die Seite vom Webbrowser dargestellt wird. Eine wichtige Unterscheidung, die man verstanden haben sollte, ist die zwischen Zeichenkodierung und Zeichensatz.
Das Computer-Wörterbuch Foldoc[1] definiert einen Zeichensatz als eine bestimmte Zuordnung zwischen Zeichen und Bytestrings, also die Kombination einer bestimmten Zeichenkodierung, die Bytestrings Ganzzahlen zuordnet, mit einem bestimmten kodierten Zeichensatz. Ein kodierter Zeichensatz ist ein Satz von Zeichen, der jedem Zeichen einen eindeutigen Zahlenwert zuweist. Zeichenkodierung bezieht sich darauf, wie diese abstrakten Zeichen entsprechenden Bytes zugeordnet werden, damit sie ein Computer verarbeiten kann.
Kurz: Die Zeichenkodierung teilt dem Webbrowser mit, welche Zeichen er verwenden soll, wenn er die Bits in Zeichen umwandelt. Hier einige Gründe, warum man die Zeichenkodierung explizit angeben sollte:
- Man sollte sich über die Zeichenkodierung Gedanken machen, weil ihre Angabe seit dem HTML-4.01-Standard obligatorisch ist.
- Falls eine Webseite keine Angabe zur Zeichenkodierung enthält, muss der Browser raten, welche Kodierung er zur Anzeige der Webseite verwenden soll. Das kann dazu führen, dass die falsche Zeichenkodierung zum Einsatz kommt.
- Browser erlauben dem Benutzer die Wahl einer standardmäßigen Kodierung. Diese kann anders sein als diejenige für die Webseite.
Die Zeichenkodierung einer Webseite wird generell in der ersten Zeile angegeben.
Die von HTML unterstützte Zeichenkodierung ist durch den Unicode[2]-Zeichensatz definiert. Unicode unterstützt jedes Alphabet und ermöglicht es, Millionen von Zeichen zu repräsentieren, darunter auch Zeichen mit Akzenten. Jedem Zeichen ist dabei ein zwei Byte langer Code zugewiesen. Die weit verbreitete ASCII-Kodierung kommt hingegen mit einem Byte aus und wird zum Beispiel in den USA häufig verwendet.
Hier eine Auswahl der zur Verfügung stehenden Zeichenkodierungen:
- ISO 8859-1: Dies ist die Standardkodierung für das lateinische Alphabet, auch Latin1 genannt. Sie umfasst alle auf lateinischen Buchstaben basierenden Sprachen der Welt.
- UTF-8 (8-Bit UCS/Unicode Transformation Format): Diese Zeichenkodierung repräsentiert jedes Zeichen des Unicode-Standards. Die Kodierung von Bytecodes und die Zeichenzuordnungen von UTF-8 sind abwärtskompatibel zu ASCII.
- UTF-16 (16-Bit Unicode Transformation Format): Eine Zeichenkodierung mit variabler Länge für Unicode, die jedes Unicode-Zeichen abbilden kann.
- US-ASCII ist eine Teilmenge von UTF-8, die die im ASCII-Standard enthaltenen Zeichen abdeckt.
Eine vollständige Aufzählung aller möglichen Zeichenkodierungen[3] ist online verfügbar. Die derzeit am häufigsten verwendete und zu empfehlende Kodierung ist UTF-8.
Wie wählt man die richtige Zeichenkodierung?
Das Hauptproblem bei der Wahl der Zeichenkodierung besteht darin, sich für eine zu entscheiden, die alle unterschiedlichen Sprachen und Anforderungen der jeweiligen Zielgruppe abdeckt. Die Zeichenkodierung ist entscheidend, wenn es um Anwendungen geht, in denen unterschiedliche Sprachen verwendet werden, die wiederum unterschiedliche Zeichenkodierungen erfordern.
Bei der Wahl einer Zeichenkodierung muss man wissen, welche Zeichen Verwendung finden sollen. Außerdem müssen die zur Arbeit mit den Dateien eingesetzten Zeichenkodierungen bekannt sein, die der Browser und alle anderen Anwendungen unterstützen. Die meisten Browser unterstützen die Standards UTF-8 (die bessere Wahl) sowie US-ASCII. Werden andere als diese beiden Standards verwendet, sollte man vorher entsprechende Tests durchführen.
Wenn ein Browser auf eine Webanwendung zugreift, unternimmt er folgende Schritte, um die Zeichenkodierung festzustellen:
- Der HTTP-Content-Type-Header, der vom Server verschickt wird, ist die Standardmethode, um die Zeichenkodierung zu bestimmen. Diese Methode hat Vorrang gegenüber anderen Optionen in dieser Liste. Hier ein Beispiel für die Content-Type-Zeile, die als Teil des HTTP-Headers verschickt wird:
Content-Type: text/html; charset=utf-8
Webentwickler können den Content-Type-Header für eine Seite mit der verfügbaren Syntax der jeweiligen Programmiersprache festlegen. Ein ASP.NET-Entwickler kann zum Beispiel die folgende Zeile verwenden:<%Response.charset="utf-8"%>
Ein PHP-Entwickler kann diese Zeile einfügen:header('Content-type: text/html; charset=utf-8'); - XHTML-Verfechter benutzen die XML-Deklaration in der ersten Zeile einer Seite zur Angabe der Zeichenkodierung. Hier ein Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
- Oder man kann den HTML/XHTML-Meta-Tag Content-Type benutzen. Er wird im Head-Bereich einer Seite untergebracht, wobei die Zeichenkodierung mit der Eigenschaft charset angegeben wird:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Muss die Zeichenkodierung auch in Stylesheets angegeben werden?
Auch die Kodierung externer CSS-Stylesheets lässt sich festlegen. Dieser Schritt ist nicht notwendig, wenn der CSS-Code in die Seite eingebettet ist, da dann die Zeichenkodierung der gesamten Seite gilt. Die Zeichenkodierung einer CSS-Datei wird deklariert, indem man am Anfang der CSS-Datei eine entsprechende Zeile einfügt. Die folgende Syntax wird dabei verwendet:
@charset "utf-8";Darüber hinaus kann auch das charset-Attribut des link-Elements zum Einsatz kommen.
Feedback
Geben Sie die Zeichenkodierung bei Ihren Anwendungen an? Verwenden Sie einen anderen Standard als UTF-8? Teilen Sie Ihre Tipps und Erfahrungen im Forum[4] mit.
URLs in diesem Artikel:
[1] = http:/
[2] = http:/
[3] = http:/
[4] = http:/