Quelle: Folgende Dinge müssen offenbar alle(!) auf UTF-8 eingestellt sein:
- Tabelle im UTF-8 Format
- Character-Set von PHP zu DB auf UTF-8
- HTML-Charset auf UTF-8
- PHP-Script im UTF-8 Format
Tabelle im UTF-8 Format
https://stackoverflow.com/a/6115705/1777526
und so kann die Wirksamkeit der Maßnahme überprüft werden: https://stackoverflow.com/a/1049958/1777526
Character-Set von PHP zu DB auf UTF-8
bei nutzen des mysqli-drivers:
$mysqliConnection->set_charset('utf8mb4');
HTML-Charset auf UTF-8
PHP-Script im UTF-8 Format
Wenn alles nicht hilft
tiefer eingraben, z.B. mit https://stackoverflow.com/a/279279/1777526
Wenn das Kinde schon in den Brunnen gefallen ist
Durch fehlerhaften Import können manchmal statt Umlaute irgendwelche kryptische Zeichen in die Datenbank wandern. Diese kann man einfach reparieren:
UPDATE `table` set `column`= REPLACE(`column`,"ß", "ß"), `column`= REPLACE(`column`, "ä", "ä"), `column`= REPLACE(`column`, "ü", "ü"), `column`= REPLACE(`column`, "ö", "ö"), `column`= REPLACE(`column`, 'Ä', 'Ä'), `column`= REPLACE(`column`, "Ãœ", "Ü"), `column`= REPLACE(`column`, "Ö", "Ö"), `column`= REPLACE(`column`, '€', '€');
Quelle: https://mariobrandt.de/archives/technik/mysql-utf-8-fix-umlaute-603/