Umlaute werden falsch dargestellt¶
Aus „Straße“ wird „Straße“, aus „für“ wird „für“? Dann passen Zeichensatz-Einstellungen zwischen deiner Anwendung und der Datenbank nicht zusammen. Die Daten selbst sind dabei fast immer noch in Ordnung — sie werden nur falsch interpretiert.
Der häufigste Fall: nach einem Update¶
Tritt das Problem plötzlich auf, ohne dass du etwas geändert hast, liegt es meist an der PHP-Erweiterung für die Datenbankverbindung. Der Wechsel auf die Alternativvariante löst es in den meisten Fällen:
- cPanel öffnen — wie das geht
- Im Bereich Software auf PHP-Version wählen
- Zum Abschnitt Erweiterungen
mysqliundpdo_mysqliabwählennd_mysqliundnd_pdo_mysqlianhaken- Speichern und die Website neu laden
Was der Unterschied ist
Beide Erweiterungen tun dasselbe, stammen aber aus unterschiedlichen Quellen — die
nd_-Varianten von MySQL selbst. Sie gehen mit Zeichensätzen anders um, und für
bestehende Anwendungen ist das oft genau der Unterschied zwischen richtig und falsch
dargestellten Umlauten.
Wenn das nicht hilft¶
Dann liegt es an der Anwendung selbst. Prüfe der Reihe nach:
- Die Verbindung: Die Anwendung sollte nach dem Verbindungsaufbau explizit
utf8mb4setzen. Bei WordPress steht das in derwp-config.phpalsDB_CHARSET. - Die Tabellen: In phpMyAdmin siehst du je Tabelle die Kollation. Ein Mix aus
latin1undutf8mb4in derselben Datenbank ist eine typische Ursache. - Der Import: Wurde eine Sicherung mit falscher Zeichensatzangabe eingespielt, sind die Zeichen schon beim Import verfälscht worden. Dann hilft nur ein erneuter Import mit passender Einstellung — der Grund, warum sich ein Blick auf die alte Sicherung lohnt, bevor man in der Datenbank herumbessert.
Nicht per Suchen-und-Ersetzen reparieren
Kaputte Zeichen einzeln zu ersetzen, sieht kurz nach Erfolg aus, hinterlässt aber eine Datenbank mit gemischten Kodierungen. Der nächste Import bringt das Chaos zurück.
Emojis und andere 4-Byte-Zeichen¶
Verschwinden nur Emojis oder bestimmte Sonderzeichen, während Umlaute stimmen, braucht die
Datenbank utf8mb4 statt utf8. Bei Nextcloud und ähnlichen Anwendungen gibt es dafür
Anleitungen des Herstellers.