MySQL Migration Latin1 nach UTF-8

MySQL Migration Latin1 nach UTF-8

am 06.10.2006 14:57:38 von Enrico Hoffmann

Welche Erfahrungen habt Ihr damit gemacht. Habe zwar einiges
ausprobiert, aber es ergibt kein anständiges Ergebnis.

Ich kann auch aktuell nicht genau orten wo der Teufel steckt.

Die PHP/HTML-Seiten werden anscheinend korrekt kodiert ausgeliefert.
(header("Content-Type: text/html; charset=UTF-8");)
()

Die MySQL-Datenbank/Tabellen benutzen ebenfalls den richtigen
Zeichensatz/Kollation.
(CHARACTER SET utf8 COLLATE utf8_general_ci;)

Schaue ich mir nun via phpmyadmin ein paar Datensätze mit Sonderzeichen
an, dann sehen die auch ganz gut aus. (Bsp.: 'hier können Sie'). Auf der
ausgelieferten HTML-Seite wird daraus aber Zeichensalat. Der Fehler
scheint aber eher in der Nähe der Datenbank zu sein, da Sonderzeichen,
die direkt in der Seite gespeichert sind (Editor ist auf UTF-8-Encoding
eingestellt) sauber dargestellt werden. Auch mein Feuerfüchslein
bestätigt mir die UTF-8-Kodierung.

Keine Sorge, ich habe bereits gegooglet, probiert und und und ... aber
irgend wann sehe ich den Wald vor Bäumen nicht mehr, brauche aber
dennoch irgend wann eine Lösung. Oder wenigstens Hinweise. Ich hoffe,
meine Darstellung reicht dafür aus.

Re: MySQL Migration Latin1 nach UTF-8

am 06.10.2006 15:08:40 von Christian Kirsch

Am 06.10.2006 14:57 schrieb Enrico Hoffmann:
> Welche Erfahrungen habt Ihr damit gemacht. Habe zwar einiges
> ausprobiert, aber es ergibt kein anständiges Ergebnis.
>
> Ich kann auch aktuell nicht genau orten wo der Teufel steckt.
>
> Die PHP/HTML-Seiten werden anscheinend korrekt kodiert ausgeliefert.
> (header("Content-Type: text/html; charset=UTF-8");)
> ()
>
> Die MySQL-Datenbank/Tabellen benutzen ebenfalls den richtigen
> Zeichensatz/Kollation.
> (CHARACTER SET utf8 COLLATE utf8_general_ci;)
>
> Schaue ich mir nun via phpmyadmin ein paar Datensätze mit Sonderzeichen
> an, dann sehen die auch ganz gut aus. (Bsp.: 'hier können Sie'). Auf der
> ausgelieferten HTML-Seite wird daraus aber Zeichensalat.

Was genau meinst Du mit "Zeichensalat"? Beispiel? Wie sieht die Seite
in einem Editor aus, wenn Du sie aus dem Browser heraus speicherst?
(oder einfacher: Das Ergebnis von wget URL)

> Der Fehler
> scheint aber eher in der Nähe der Datenbank zu sein, da Sonderzeichen,
> die direkt in der Seite gespeichert sind (Editor ist auf UTF-8-Encoding
> eingestellt) sauber dargestellt werden. Auch mein Feuerfüchslein
> bestätigt mir die UTF-8-Kodierung.

Wie genau tut es das (weniger Neckigkeit und mehr Fakten wären nicht
schlecht).

Neulich gab's hier mal ein Problem mit dem CHARACTER SET der
Connection - hast Du den Thread gelesen? Passt das vielleicht?

Re: MySQL Migration Latin1 nach UTF-8

am 06.10.2006 15:40:56 von Axel Schwenke

Enrico Hoffmann wrote:

> Die PHP/HTML-Seiten werden anscheinend korrekt kodiert ausgeliefert.
> (header("Content-Type: text/html; charset=UTF-8");)
> ()

Davon brauchst du nur eines. Vorzugsweise das erste. Aber eigentlich
will man das per Apache-Direktive in httpd.conf oder .htaccess haben.

> Die MySQL-Datenbank/Tabellen benutzen ebenfalls den richtigen
> Zeichensatz/Kollation.
> (CHARACTER SET utf8 COLLATE utf8_general_ci;)

Irrelevant. Entscheidend ist character_set_results.

Handbuch:
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.ht ml

ein paar Hintergründe:
http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Gru ndlagen.html

> Keine Sorge, ich habe bereits gegooglet

Hättest du mal besser das Handbuch gelesen.


XL