Umgang mit Zeichencodierungen in HTML und CSS

Zielgruppe: HTML/XHTML- und CSS-Autoren. Das hier Gesagte gilt sowohl für im Editor geschriebene als auch für durch Scripte erzeugte Dokumente.

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 (X)HTML und CSS dienen.

Kurz und knapp

Dieser Abschnitt ist für Eilige, die einfach nur die Kernaussagen dieses Tutorials wissen möchten. Wenn Sie etwas nicht verstehen oder an weiteren Details interessiert sind, lesen Sie den Rest des Tutorials.

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. Diese Tabelle zeigt, wie es in verschiedenen Formaten gemacht wird. Verwende die Zeichencodierungs-Bezeichner aus dem IANA-Register.

Verwende die @charset-Regel für externe Stylesheets (aber nicht für CSS in HTML), wenn Nicht-ASCII-Zeichen vorkommen, bspw. in Namen von Schriftarten, ID- oder Klassenbezeichnern usw.

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.

Die Artikel, auf die hier verwiesen wird, beschreiben den neuesten Stand gemäß der HTML5-Spezifikation. Es muss jedoch erwähnt werden, dass die HTML5-Spezifikation noch Änderungen unterworfen ist. Sie sollten diese Informationen also mit Vorsicht genießen.

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 viele Zeichencodierungen zur Auswahl. Dieser Teil des Tutorials gibt Ihnen einfache Ratschläge, welche Zeichencodierung Sie für Ihre Inhalte verwenden sollten und wie man diese anwendet.

Eine Zeichencodierung wählen und anwenden beinhaltet folgendes:

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.

  1. Kurze Empfehlungen
  2. Weitere Details:

 

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 behandelt:

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 behandelt:

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 Informationen zu folgenden Themen:

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? behandelt: