19. November 2025
nginx: Wie ändere ich das Encoding/das Charset einer Seite?
Nichts ist ärgerlicher, als wenn eine Website statt sauberer Umlaute nur kryptische Zeichen zeigt, etwa „ö“ statt „ö“. Solche Darstellungsfehler sind fast immer auf ein falsches Encoding (auch: Charset) zurückzuführen. Die Zeichencodierung (Encoding/Charset) legt fest, wie Zeichen einer Webseite intern gespeichert und an den Browser übermittelt werden.
Damit Sie solche Probleme künftig vermeiden, haben wir einen neuen Leitfaden zum Thema Zeichencodierung richtig konfigurieren veröffentlicht.
Zum Leitfaden
Was bedeutet „Charset“ überhaupt?
Das Charset legt fest, wie Zeichen (Buchstaben, Ziffern und Sonderzeichen) intern in Bytes übersetzt gespeichert und an den Browser übermittelt werden. Jeder Buchstabe oder jedes Sonderzeichen erhält dabei eine eindeutige Nummer, die das System versteht. Erst durch das richtige Charset weiß der Browser also, welche Zeichen er aus den empfangenen Bytes darstellen soll.
Das Zeichen „ö“ wird zum Beispiel in UTF-8 anders codiert als in ISO-8859-1. Wenn eine Webseite angibt, sie sei in UTF-8 codiert, der Browser aber tatsächlich ISO-8859-1-Daten erhält, interpretiert er die Bytes falsch und zeigt statt „ö“ dann beispielsweise „ö“ an.
Das Charset wirkt sich auf alle Textelemente einer Webseite aus. Deshalb ist es wichtig, dass alle beteiligten Systeme dasselbe Encoding verwenden:
- das Content Management System (CMS),
- die Datenbank (z. B. MySQL),
- der Webserver (z. B. nginx oder Apache)
- und schließlich der Browser des Besuchers.
Wenn eines dieser Systeme ein anderes Charset nutzt oder deklariert, entstehen leicht Inkonsistenzen und fehlerhafte Darstellungen.
Heute gilt UTF-8 als der Standard im Web, da es alle modernen Schriftzeichen unterstützt. Ältere Charsets wie ISO-8859-1 (Latin-1) oder Windows-1252 waren lange Zeit verbreitet, stoßen aber bei internationalen oder dynamischen Webseiten schnell an ihre Grenzen.
Typische Ursachen für falsche Zeichenkodierungen
- Die MySQL-Datenbank ist auf Latin-1 eingestellt, während das CMS UTF-8 erwartet.
- Unterschiedliche Systeme (z. B. Datenbank, CMS, Webserver) verwenden nicht dieselbe Kodierung.
- Ein Proxy- oder FastCGI-Server sendet bereits einen HTTP-Header mit falschem Charset.
- Der nginx-Webserver überschreibt oder ergänzt die Charset-Angabe im Header, ohne die Daten tatsächlich umzuwandeln.
Wie nginx helfen kann
nginx bietet eine einfache Möglichkeit, das Charset im HTTP-Header zu setzen oder zu überschreiben. Wichtig zu wissen: nginx konvertiert keine Inhalte, sondern teilt dem Browser nur mit, in welchem Charset der Inhalt vorliegt.
Damit alles korrekt angezeigt wird, muss der Content selbst bereits in diesem Charset gespeichert sein.
Im Leitfaden finden Sie dazu drei zentrale Schritte:
-
Charset für die Ausgabe festlegen
-
Inhalte konvertieren, wenn sie noch in einem anderen Charset vorliegen
-
Vorhandenes Charset im Header überschreiben, falls ein anderer Dienst bereits eine fehlerhafte Angabe liefert
Wann lohnt sich die Umstellung auf UTF-8?
Wenn Ihre Website noch auf Latin-1 oder einem älteren Encoding läuft, lohnt sich der Wechsel fast immer. Die Vorteile sind:
- Einheitliche Darstellung in allen Browsern und Sprachen
- Keine Probleme mit Sonderzeichen oder Emojis
- Bessere Kompatibilität mit modernen CMS und Frameworks
- Zukunftssichere Datenhaltung
Ein korrekt konfiguriertes Charset ist die Basis für eine saubere, fehlerfreie Darstellung Ihrer Website.
Unser Leitfaden zeigt Ihnen Schritt für Schritt, wie Sie das Encoding prüfen, anpassen und im nginx-Server richtig konfigurieren. So vermeiden Sie fehlerhafte Zeichen und stellen sicher, dass Ihre Inhalte überall richtig ankommen.