Hello,
Es nützt aber nichts, diese Zeichen nur speichern zu können, man muss sie auch von und zum MySQL-Server transportieren können. Dafür sollte man für jede eröffnete Verbindung explizit eine Kodierung einstellen und sich nicht auf irgendwelche Server-Default-Werte verlassen. Mit dem Statement SET NAMES utf8 legt man UTF-8 als Kodierung für die Verbindung fest.
Das heißt also, dass ich, als chronischer utf-8-Verweigerer da als erstes Statement in PHP immer "SET NAMES latin1;" vorausschicken sollte, wenn ich eine Datenbank(server)verbindung hergestellt habe. Macht man das vor oder nach dem mysql_select_db() oder ist es egal? (Die Datenbanknamen haben bei mir keine Zeichen oberhalb 7-Bit).
Weniger wichtig sind die Kodierungs-/Kollationsangaben für Tabellen und Datenbanken, denn das sind nur Default-Werte, die verwendet werden, wenn für Felder keine explizite Angabe gemacht wurde. Die Default-Werte "vererben" sich in dieser Reihenfolge: Server-Defaultwert -> Datenbank-Defaultwert -> Tabellen->Defaultwert -> Feldkodierung.
Dann kann ich das aber eventuell nachvollziehen.
Meine alte DB war angelegt auf latin1. Ich habe einen Dump gezogen und diesen importiert in die neue Datenbanksammlung. Da war nur ein bisschen Quark drin, eine Testdatenbank mit irrelevanten Daten, eben zum Spielen. Die "Sammlung" stand aber nun auf utf-8.
Beim Import muss da irgendwas schiefgegangen sein.
Ich hab dann später auf latin1 zurückgestellt und dann nacheinander alle möglichen "mixed-Muster" erhalten. Erst nachdem ich wirklich für alle Felder aller Tabellen mit dem Frontend wieder explizit "latin1" und vor allem die Kollation "latin1-general-ci" eingestllt hatte, war der Fehler weg.
Es sind auch keine Datenverluste zu beklagen.
[*] Alle Stellen zu finden lasse ich mal als Hausaufgabe (besonders für Tom) stehen :-)
Das habe ich befürchtet, habe es aber schon auf dem Zettel... :-)
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)