Arnold: UTF-8 plötzlich nur mehr ???

Beitrag lesen

SET NAMES und SET CHARACTER SET schließen sich gegenseitig aus, weil sie beide die selben Konfigurationsparameter setzen, nur unterschiedlich. SET CHARACTER SET will man in der Regel nur dann haben, wenn man sich seiner Auswirkungen bewusst ist und diese so haben will. Verwende lieber SET NAMES und nichts weiter! Oder noch besser die Funktion mysql(i)_set_charset().

»» character_set_database latin1

Das sieht zusammen mit dem SET CHARACTER SET sehr nach dem Übeltäter aus. Wenn die charset-Einstellung deiner Datenbank auch noch auf latin1 steht (beispielsweise weil sie den obigen Default-Wert geerbt hat), musst du dich nicht wundern, wenn es dir deine Nicht-Latin1-Zeichen kaputtmacht.

Die Lösung war wirklich so einfach wie genial. Ich habe das SET CHARACTER SET entfernt und es funktioniert wieder. Seltsamer Weise sind aber alle alten Einträge weiterhin Ketten von Fragezeichen, die sind also wohl unwiederbringlich verloren. Ich schätze mal, da hat mein Provider irgendwas vermurkst, ich habe nämlich sicher nichts geändert.

Die Funktion mysql(i)_set_charset() habe ich mir angesehen (was bedeutet eigentlich das i in Klammern?) und auf der offiziellen PHP Seite steht, dass sie erst ab MySQL 5.0.7 verwendet werden kann. Die Datenbank liegt wie gesagt momentan noch auf version 4.1.24, ich muss vorerst also mit SET NAMES auskommen. Die Übertragung auf Version 5 ist jetzt aber der nächste Schritt, nachdem es mit UTF-8 wieder funktioniert.

Gibt es dafür vielleicht eine Seite, auf der man sieht was bei einer solchen Übertragung beachtet werden muss? Oder reicht es dafür die Datenbank zu sichern und einfach über phpmyadmin wieder in die neue Version 5 einzuspielen?

Auf jeden Fall vielen, vielen Dank für die Hilfe bisher.