Unter Zeichenkodierung versteht man die Zuordnung von sprachlichen Zeichen zu einer computer-internen Reräsentation. Sogenannte Code-Tabellen definieren, welches Zeichen intern durch welche Bitfolge interpretiert werden.
HTML ist prinzipiell an der Code-Tabelle des Unicode-Systems orientiert, unterstützt darüber hinaus aber auch andere Zeichensätze.
Unicode
Unicode ist ein System, in dem die Zeichen oder Elemente aller bekannten Schriftkulturen und Zeichensysteme festgehalten werden. Das Unicode-Konsortium, das 1991 gegründet wurde und aus Linguisten und anderen Fachleuten besteht, ermittelt die aufzunehmenden Zeichen. Die vergebenen Zeichencodes haben verbindlichen Charakter. Seit Version 2.0 ist das Unicode-System auch mit der internationalen Norm ISO/IEC 10646 synchronisiert.
Die Zeichennummern der von Unicode erfassten Zeichen wurden zuerst ausschließlich durch eine zwei Byte lange Zahl ausgedrückt. Auf diese Weise lassen sich bis zu 65536 verschiedene Zeichen in dem System unterbringen. Das Zwei-Byte-Schema, im Unicode-System als Basic Multilingual Plane (BMP) bezeichnet, reichte jedoch nicht aus, um alle Zeichen unterzubringen. Deshalb wurde es mittlerweile durch ein Vier-Byte-Schema ersetzt, wodurch sich 4.294.967.296 Zeichen adressieren lassen.
Zeichenkodierung auswählen und in HTML angeben
Wenn Sie HTML in einem Texteditor notieren, verwenden Sie einen Editor, in dem Sie beim Speichern die Zeichenkodierung explizit auswählen können, oder von dem Sie wissen, in welcher Zeichenkodierung er seine Daten abspeichert.

Beispiel eines Speichern-Dialogs in einem Texteditor mit Auswahlmöglichkeit der Zeichenkodierung
In Ihren HTML-Dokumenten notieren Sie dann eine Angabe zu der verwendeten Zeichenkodierung (in neueren HTML-Versionen ist eine solche Angabe sogar Pflicht). Geben Sie in HTML diejenige Zeichenkodierung an, die Ihr Editor untersützt. Das erreichen Sie durch eine Meta-Angabe in den Kopfdaten eines HTML-Dokuments. Beispiel:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Auf Meta-Daten werden wir später noch ausführlicher eingehen.
Die mittlerweile am häufigsten verwendete Zeichenkodierung ist UTF-8. Diese Zeichenkodierung verwendet die Code-Tabelle des Unicode-Systems, speichert jedoch nicht jedes Zeichen mit vier Byte Breite. Stattdessen wird bei höherwertigen Zeichen im ersten Byte gespeichert, aus wie vielen weiteren Bytes das Zeichen besteht.
Entities für HTML-eigene Zeichen
Wenn in Ihrem Text Zeichen vorkommen, die in HTML eine bestimmte Bedeutung haben, müssen Sie diese Zeichen maskieren. Dazu stellt HTML benannte Entities zur Verfügung — Zeichenfolgen, mit deren Hilfe sich bestimmte Zeichen umschreiben lassen. Die folgenden Zeichen müssen Sie innerhalb von interpretiertem HTML-Text wie folgt maskieren:
- Ersetzen Sie das Zeichen & durch die Zeichenfolge & (steht für „Ampersand“)
- Ersetzen Sie das Zeichen < durch die Zeichenfolge < (steht für „lower than“)
- Ersetzen Sie das Zeichen > durch die Zeichenfolge > (steht für „greater than“)
Außerdem ist es ratsam, an bestimmten Stellen das englische Quotation-Mark-Zeichen (das ")) durch die Zeichenfolge " (steht für „Quote“) zu ersetzen. Dies ist vor allem in Attributwerten sinnvoll.
Ein Beispiel:
Das ist ein <Tag> GmbH & Co. KG <strong title="bekannt durch den Ausspruch "Ich weiß dass ich nichts weiß!""> der griechische Philosoph Sokrates</strong>
Am wichtigsten ist die spitze öffnende Klammer (<). Wenn Sie dieses Zeichen nicht wie vorgeschrieben maskieren, bringen Sie den Web-Browser mit ziemlicher Sicherheit durcheinander, weil er glaubt, nun würde ein HTML-Tag folgen. Die anderen HTML-eigenen Zeichen führen zwar meistens nicht zu Anzeigefehlern, dennoch sollten Sie sie möglichst maskieren.