Umlaut-Probleme beheben

PHP verwendet standardmäßig UTF-8. Werden Umlaute falsch dargestellt, prüfe zuerst, ob Dateien, Datenbankverbindung und HTTP-/HTML-Zeichensatzangabe tatsächlich denselben Zeichensatz verwenden. Eine andere Zeichensatzangabe konvertiert die vorhandenen Daten nicht.

Webhosting-Pakete

Für eine UTF-8-Anwendung kann in einer .user.ini im Websiteverzeichnis beispielsweise stehen:

INI
default_charset = UTF-8

Nur wenn der vorhandene Inhalt tatsächlich ISO-8859-1 verwendet, ist default_charset = ISO-8859-1 eine passende Übergangslösung. Sichere die Daten vor einer Zeichensatzkonvertierung und stelle langfristig die gesamte Anwendung konsistent auf UTF-8 um.

Freespace

Auch auf kostenlosem Webspace verwendest Du dafür .user.ini. Die Apache-Direktive php_value gehört nicht in diese Datei und ist bei PHP-FPM auch keine geeignete .htaccess-Lösung. Ein danach auftretender Fehler 500 bedeutet daher nicht automatisch, dass Du Dich vertippt hast.

Der Dateiname muss genau .user.ini lauten. Ergänze bestehende Einstellungen ohne widersprüchliche doppelte Werte. Änderungen können erst nach einigen Minuten wirksam werden; eine Anwendung kann zusätzlich eigene Zeichensatzheader setzen.

UTF-8 Byte Order Mark entfernen

Ein Byte Order Mark am Anfang einer PHP-Datei kann eine Ausgabe vor dem Senden der HTTP-Header verursachen. Dann kann beispielsweise diese Meldung erscheinen:

Text
Warning: Cannot modify header information - headers already sent
  1. Sichere und öffne die betroffene Datei in einem Editor mit auswählbarer Zeichencodierung.
  2. Speichere sie als UTF-8 ohne BOM.
  3. Lade sie wieder in das richtige Websiteverzeichnis hoch und prüfe die Webseite.

Auch andere Ausgaben vor header() können diese Meldung auslösen. Prüfe den in der Fehlermeldung genannten Beginn der Ausgabe.

Frag die lima-city Hilfe Antworten basieren auf unseren Hilfeartikeln. Bitte sende keine Accountdaten oder Passwörter.