Die Zeichenkodierung legt fest, wie aus Bytes Buchstaben werden. Stimmt die Angabe nicht mit der Datei überein, erscheinen statt Umlauten Fragezeichen oder Buchstabensalat.
- Zeichenkodierung (charset / UTF-8)
Festlegung, welche Bytefolge welches Zeichen darstellt.
Beispiel: „Die Zeichenkodierung steht im Kopfbereich und gilt für das ganze Dokument.“Auch: Charset.
Warum UTF-8
UTF-8 deckt praktisch jedes Schriftzeichen ab, vom deutschen Umlaut bis zum Emoji, und bleibt für lateinische Buchstaben platzsparend. Es ist heute die Voreinstellung in Editoren, Datenbanken und Servern.
<meta charset="utf-8">Die Angabe gehört nach oben
Der Browser muss wissen, wie er die Bytes lesen soll, bevor er Text verarbeitet. Deshalb gehört die Zeile in die ersten 1024 Bytes des Dokuments, in der Praxis als erste Zeile im Kopfbereich.
Steht sie zu spät, beginnt der Browser von vorn, sobald er sie findet. Das kostet Zeit und kann zu kurz sichtbarem Buchstabensalat führen.
Server und Datei müssen übereinstimmen
Die Angabe im Dokument ist nicht die einzige. Der Server schickt die Kodierung im Kopf seiner Antwort mit, und diese Angabe wiegt schwerer als die im HTML. Widersprechen sie sich, gewinnt der Server.
Wenn es schiefgeht
Das bekannte Bild sind Zeichenfolgen wie ü statt ü. Dahinter steckt fast immer dieselbe Ursache: Die Datei ist in einer Kodierung gespeichert und wird in einer anderen gelesen.
Die Fehlerquelle liegt selten in der HTML-Datei allein. Datenbank, Verbindung und Serverantwort haben ebenfalls eine Kodierung, und erst wenn alle übereinstimmen, bleibt der Text sauber.