Zum Inhalt springen

Probleme mit UTF-8 Konvertierung

Erstellt am 21. Oktober 2006 · 4 Antworten · letzte Antwort am 21. Oktober 2006

Tags: Datenbank, Frage

FunnyDingo ·

Hallo zusammen,

vielleicht hat ja jemand von euch eine Idee, denn ich bin ratlos.

Ich habe gestern einen Dump von unserem Produktiv-System gezogen. Ein tgz des File-Systems und ein mysqldump. Das tgz ist sauber, aber ich habe Probleme mit dem Dump.

Auf dem Produktiv-System läuft PHP 4.4.2 und MySQL 4.0.18. Typo3 ist mit ForceCharset UTF-8 konfiguriert. Wenn ich im MySQL-Client 'status;' ausführe, bekomme ich die Info, das Server- und Client-Charset latin1 sind. Das Dump-File ist UTF-8

# file dump.sql
dump.sql: UTF-8 Unicode English text, with very long lines

Wenn ich den Dump nun auf meinem Test-System einspiele, spielt Typo völlig verrückt. Alle Umlaute werden als � dargestellt und TemplaVoila funktioniert auch nicht richtig. Auf dem Test-System läuft PHP 5.1.6 und MySQL 5.0.24a. Client- und Server-Charset UTF-8.

Mir scheint es, als würde Typo die als UTF-8 vorliegenden Daten nochmal nach UTF-8 kodieren, kann das sein? Wenn ich auf dem Produktiv-System mit phpMyAdmin in die DB schaue, bekomme ich auch falsche Auszeichenung (Beispiel: ü für ü), auf dem Test-System bekomme ich aber ein ü angezeigt. Ich weiß nicht was da los ist. Ich muss aber eine Lösung finden, da wir das Produktiv-System bald auf den Software-Stand des Test-Systems bringen wollen.

Ich hoffe jemand von euch hat einen Tipp für mich.

lg,
Funny

steffenk ·

Alle MySQL-Versionen vor 4.1 haben Probleme mit utf8. Das Problem kann man dadurch beheben, das die Verbindung nicht über utf8 gemacht wird und dann das Backup eingespielt wird.

FunnyDingo ·

Na super, hat bestens funktioniert. Korrekte Zeichendarstellung und auch keine TV-Fehler mehr.

Gibt es eigentlich einen Weg die Daten in echtes UTF-8 zu bekommen, sa dass Typo auch damit arbeiten kann? Wenn ich jetzt mit dem phpMyAdmin (oder dem nativ-Client) rein schaue, werden mir ja z.B. ü angezeigt, dass vermittelt mir den Eindruck das es kein echtes UTF8 ist, oder?

steffenk ·

das hängt davon ab - wenn die Tabellen latin sind, dann geht das nicht.
MySQL 4.0x kann schon UTF8, nur beim dumpen / einspielen tauchen Probleme auf. Genau konnte ich das noch nicht eroieren.

FunnyDingo ·

Also, ein kleines Stück weiter bin ich schon.

Ich habe herausgefunden das Typo3 in der Standard-Konfiguration eine MySQL-Verbindung mit Latin-1-Charset nutzt (zumindest in dieser Installation). Via [SYS][setDBinit] kann man diese aber auf UTF8 setzten. Dann kann man theoretisch auch mit "echten" UTF-8-Daten arbeiten. Leider scheint TemplaVoila damit nicht zurecht zu kommen, denn ich bekomme im FE auf einigen Seiten eine Fehlermeldung. Ich habe dazu aber im TV-Forum mal einen Thread aufgemacht, damit die Themen sauber getrennt bleiben.

Ich danke dir erstmal für die Tipps ;-)