Zeichenkodierung
Geben Server und HTML übereinstimmend UTF-8 an, damit Umlaute richtig erscheinen?
Was wir prüfen
Wir lesen die Zeichenkodierung an zwei Stellen:
- im HTTP-Header der Serverantwort, z.B.
Content-Type: text/html; charset=utf-8, - im HTML, z.B.
<meta charset="utf-8">.
Dann vergleichen wir:
- Keine Angabe an beiden Stellen: Warnung.
- Widersprüchliche Angaben, z.B. Server UTF-8, HTML ISO-8859-1: Warnung.
- Angabe nur im HTML, nicht im Header: Hinweis.
- Eine andere Kodierung als UTF-8: Hinweis.
Warum das wichtig ist
Computer speichern Text als Zahlen. Die Zeichenkodierung legt fest, welche Zahl für welchen Buchstaben steht. Für A bis Z sind sich alle Kodierungen einig, für ä, ö, ü, é, à und ç nicht.
Liest der Browser eine Seite mit der falschen Kodierung, entstehen die bekannten kaputten Zeichen:
- «Zürich» wird zu «Zürich»
- «Offerte für Sie» wird zu «Offerte f�r Sie»
Für Websites mit Umlauten und Akzenten ist das besonders heikel. Es wirkt unprofessionell, und Suchmaschinen erfassen Wörter wie «Zürich» oder «Gärtnerei» falsch, sodass die Website für diese Begriffe schlechter gefunden wird.
Widersprüchliche Angaben entstehen oft, wenn eine alte Website auf einen neuen Server umzieht: Die Dateien sind noch in einer alten Kodierung gespeichert, der Server meldet aber UTF-8, oder umgekehrt.
So behebst Du es
Im HTML
Ganz am Anfang des <head>, als erstes Element:
<meta charset="utf-8">
Im HTTP-Header
- Apache (.htaccess):
AddDefaultCharset UTF-8 - nginx:
charset utf-8; - PHP:
header('Content-Type: text/html; charset=utf-8');
Dateien und Datenbank
Die Angaben helfen nur, wenn die Inhalte tatsächlich in UTF-8 gespeichert sind:
- Speichere HTML-, CSS- und Vorlagendateien im Editor als «UTF-8» (ohne BOM).
- Bei älteren CMS-Installationen muss eventuell die Datenbank auf
utf8mb4umgestellt werden. Das ist eine Aufgabe für die Agentur oder den Hoster, und vorher braucht es ein Backup.
WordPress und Baukästen
WordPress verwendet seit vielen Jahren UTF-8 und setzt die Angaben selbst. Website-Baukästen wie Wix, Jimdo und Squarespace ebenfalls. Probleme betreffen fast nur ältere, individuell entwickelte Websites.
So prüfst Du es selbst
Öffne die Entwicklertools (F12), Reiter «Netzwerk», lade die Seite neu und klick auf das HTML-Dokument. Unter «Antwort-Header» steht bei content-type die Kodierung. Im Seitenquelltext suchst Du nach charset.
Häufige Fragen
Im Browser werden Umlaute richtig angezeigt. Ist trotzdem etwas zu tun?
Wenn wir einen Widerspruch oder eine fehlende Angabe melden, ja. Moderne Browser raten oft richtig, aber nicht immer. Auf anderen Geräten, in E-Mail-Vorschauen oder bei Suchmaschinen kann aus «Zürich» dann «Zürich» werden.
Was ist UTF-8?
Der weltweite Standard für Text im Web. Er kann alle Schriftzeichen darstellen, von Umlauten über französische Akzente bis zu Emojis. Praktisch alle Websites verwenden ihn.
Jetzt eine Website prüfen
Wir prüfen «Zeichenkodierung» und alle anderen Punkte in wenigen Minuten, kostenlos und ohne Anmeldung.
Verwandte Themen
-
HTML5-Doctype
Beginnt die Startseite mit der modernen Angabe «<!DOCTYPE html>»?
-
W3C-Validierung
Wie viele Fehler findet der offizielle Validator des W3C im HTML der Startseite?
-
Sprachangaben
Gibt das HTML der Startseite die Sprache des Inhalts an?
-
Veraltete HTML-Elemente
Verwendet die Startseite HTML-Elemente, die aus dem Standard gestrichen wurden, etwa font, center oder marquee?