dedlfix: MySQL 4 => 5 (UTF-8-Sonderzeichen-Problem)

Beitrag lesen

Tach!

Alte Datenbank:

MySQL 4.1.22, Tabellen-Kollation: latin1_swedish_ci

MMySQL-Versionen vor 4.5 hatten nur eine generelle Einstellung zur Zeichenkodierung. Für Tabellen oder Spalten konnte da noch nichts weiter individuell eingestellt werden.

Neue Datenbank:

MySQL 5.5.28, Tabellen-Kollation: (noch) latin1_swedish_ci, was wahrscheinlich das Hauptproblem ist

Das Hauptproblem ist, dass das Zeichenkodierungskonzept stark aufgebort worden ist. Man kann an vielen Stellen eine Kodierungsangabe setzen, manche sind nur Default-Werte für andere Stellen, beispielsweise die Tabellen-Kodierung. Bitte lies erstmal den umfangreichen Teil zur Zeichenkodierung in unserem Wiki, besonders den Bereich zu MySQL.

Ich hoffe, ich habe nichts vergessen. Das Problem bei mir ist, dass ich mir schon garnicht sicher bin, welche dieser Parameter sinnvoll oder (un)nötig sind. Das heißt, ich weiß nicht, wie ich sinnvoll und mit reduzierten Einflussfaktoren an die Sache rangehe.

Das wird hoffentlich durch die Lektüre klarer. Dazu brauchst du auch noch die Abschnitte zu Webdokumenten und zum Webserver.

Mein Ziel ist logischerweise,
a) dass das "ö" aus der alten DB in der neuen Datenbank nicht als "öh" erscheint, sondern als "ö"

Der Dump der alten Datenbank ist Latin1-kodiert, was einem Windows-1252 entspricht. Wenn du diese Daten in die neue Datenbank importierst, musst du diese Zeichenkodierung angeben, damit der Einleser sie richtig interpretieren kann.

b) dass der User die Daten als UTF8 bekommt und auch ein "ö" sieht.

Und dann musst du beim Auslesen auch noch angeben, welche Kodierung du gern hättest. Das wird aber (hoffentlich) alles klarer nach der empfohlenen Lektüre.

Für jeden Hinweis bin ich sehr dankbar. Auch wenn ihr bspw. brauchbare Tutorials kennt, die einen nicht nur blöd gucken lassen (Thema Collation, da geht mir das so).

Bitte konkret nachfragen, wenn was unklar geblieben ist.

dedlfix.