tk: Nach MySQL Upgrade von 5.7 auf 8.0 Darstellung von Umlauten kaputt

Beitrag lesen

Hallo Klaus,

ja, das Problem ist gelöst (bzw. umgangen), nur als Hintergrund warum das gerade bei dem Update passiert:

nach dem Upgrade von MySQL 5.7 auf 8.0 werden auf den Webseiten die deutsche Umlaute jetzt im UTF8 angezeigt (z.B. ü anstelle eines ü), obwohl sowohl die Kollation aller Tabellenfelder auf latin1_general_ci steht […]

Die Kollation ist für die Kodierung erstmal nicht relevant (damit werden nur die Sortierregeln vorgegeben) wobei damit als Charset latin1 eingestellt ist. Das alles ist aber für das Abfragen von Daten nicht wichtig, da ist wichtig was für die Verbindung zur Datenbank als Charset eingestellt ist – und da kommt das Upgrade MySQL 5.7 → 8.0 ins Spiel: während der Standardwert unter 5.7 noch latin1 war, ist er unter 8.0 jetzt utf8mb4. Du hast vermutlich an der Standardeinstellung nichts geändert (und auch kein Charset für die Verbindung gesetzt) und damit gilt der neue Standardwert und die Datenbank liefert dir UTF-8-Daten. Da du die im Script verarbeitest als wären sie latin1-kodiert und auch de Browser mitteilst dass das so wäre, bekommst du natürlich nur Zeichensalat angezeigt.

Statt die Einstellungen des Servers zu verändern wäre es besser beim Aufbau der Verbindung immer anzugeben welcher Charset verwendet werden soll:

Und auch wenn es schon gesagt wurde: verwende nicht latin1 sondern immer und überall UTF-8.

Gruß,
Tobias