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:
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:
Warning: Cannot modify header information - headers already sent
- Sichere und öffne die betroffene Datei in einem Editor mit auswählbarer Zeichencodierung.
- Speichere sie als UTF-8 ohne BOM.
- 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.