Umgang mit Zeichencodierungen in HTML und CSS (Tutorial)

Warum sollten Sie das lesen?

Wenn ein Browser nicht die bei einer Webseite verwendete Zeichencodierung erkennen kann, ist der Inhalt möglicherweise unlesbar. Die Informationen in diesem Tutorial sind besonders wichtig für jene, die eine mehrsprachige Website pflegen und erweitern, doch die Angabe der Zeichencodierung eines Dokuments ist für jeden wichtig, der HTML oder CSS mit Nicht-ASCII-Zeichen verfasst. Denn obwohl es bei Ihnen gut aussehen mag, können die Browsereinstellungen bei anderen die Lesbarkeit beeinträchtigen. Dieses Tutorial macht Ihnen das Thema verständlich, damit Sie die richtigen Entscheidungen treffen können.

Ziel

Nachdem Sie dieses Tutorial durchgearbeitet haben, sollten Sie:

Dieses Tutorial gibt Ihnen einen geordnete Sammlung von Verweisen zu Artikeln, die in ihrer Gesamtheit zum Verständnis der grundlegenden Aspekte von Zeichen und Zeichencodierungen beim Verfassen von HTML und CSS dienen.

Kurz und knapp

Speichere Webseiten möglichst immer in UTF-8.

Gib immer die Zeichencodierung des Dokuments an: im HTTP-Header, wenn möglich; zusätzlich auch immer im Dokument selbst.

<meta charset="utf-8">

Man kann @charset oder HTTP-Header zur Angabe der Zeichencodierung seines Stylesheets verwenden, muss das aber nur tun, wenn Nicht-ASCII-Zeichen darin vorkommen (bspw. in Namen von Schriftarten, ID- oder Klassenbezeichnern usw.) und nicht sichergestellt ist, dass HTML und zugehöriges Stylesheet dieselbe Zeichencodierung verwenden.

Verwende kein BOM in UTF-8. Speichere HTML-Code in Unicode-Normalisierungsform C (NFC).

Verwende keine Zeichen-Escapes, außer für unsichtbare oder mehrdeutige Zeichen. Verwende keine Unicode-Steuerzeichen, wenn es auch Markup dafür gibt.

Wichtige Hintergrundinformationen

Wenn Sie Neuling auf dem Gebiet sind, gibt es einige grundlegende Konzepte, die Sie verstehen sollten, um den weiteren Teilen dieses Tutorials folgen zu können. Wenn Sie mit diesen Konzepten vertraut sind, können Sie zum nächsten Abschnitt springen.

Eine Zeichencodierung wählen und anwenden

Inhalt setzt sich aus einer Sequenz von Zeichen zusammen. Zeichen repräsentieren 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 verschiedene Zeichencodierungen zur Auswahl.

Eine Zeichencodierung wählen und anwenden gibt Ihnen einfache Ratschläge, welche Zeichencodierung Sie für Ihre Inhalte verwenden sollten und wie man diese anwendet.

Wie die Zeichencodierung angegeben wird

Man sollte immer die für ein HTML- oder XML-Dokument verwendete Zeichencodierung angeben. Andernfalls riskiert man, dass Zeichen im Inhalt nicht korrekt interpretiert werden. Das betrifft nicht nur die Lesbarkeit für Menschen, in zunehmendem Maße müssen auch Maschinen Ihre Daten verstehen können. Sie sollten auch überprüfen, dass Sie nicht an verschiedenen Stellen verschiedene Zeichencodierungen angeben.

Angabe der Zeichencodierung in HTML gibt kurze Empfehlungen für jene, die schnell wissen möchten, was sie tun müssen, und detailliertere Information für diejenigen, die sie benötigen.

Angabe der Zeichencodierung in CSS gibt Informationen für CSS.

 

Das BOM (byte-order mark)

Auf das BOM (byte-order mark) stößt man, wenn man eine Unicode-basierte Zeichencodierung wie UTF-8 oder UTF-16 verwendet. In manchen Fällen muss man das BOM entfernen, in anderen Fällen dafür sorgen, dass eins vorhanden ist.

Das BOM (byte-order mark) in HTML hilft Ihnen beim Verständnis.

Unicode-Normalisierungsformen

Normalisierung muss man bedenken, wenn man HTML-Seiten mit CSS-Stylesheets in UFT-8 (oder einer anderen Unicode-Codierung) verfasst, insbesondere wenn man es mit Text zu tun hat, dessen Schrift Akzente oder andere diakritische Zeichen enthält (wie bspw. Umlaute – Anmerkung des Übersetzers).

Normalisierung in HTML und CSS erläutert das genauer.

Verwendung von Zeichen-Escapes

Jedes Unicode-Zeichen lässt sich in HTML, XML oder CSS durch ein Zeichen-Escape darstellen (maskieren); in diesem kommen dann ausschließlich ASCII-Zeichen vor.

Verwendung von Zeichen-Escapes in Markup und CSS gibt Ratschläge, wann und wie man Escapes verwendet, wenn sie gebraucht werden.

Zeichen oder Markup?

Es gibt in Unicode einige Steuerzeichen, wobei einige dieselbe Funktion erfüllen wie Markup. Es stellt sich die Frage: Welche sollte man verwenden und welche sollte man vermeiden?

Zeichen oder Markup? beantwortet diese Frage.