Umlaute-Problem in MySQL-Datenbank lösen

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/