MySQL Konvertieren latin1-Daten auf UTF8

Ich importiert einige Daten mit LOAD DATA INFILE in die MySQL-Datenbank. Die Tabelle selbst und die Spalten sind mit dem UTF8-Zeichensatz, aber der Standard-Zeichensatz der Datenbank latin-1. Da die default-character-Typ der Datenbank ist latin1, und ich verwendet LOAD DATA INFILE ohne Angabe eines Zeichensatzes, es interpretiert die Datei als latin1, obwohl die Daten in der Datei UTF8. Jetzt habe ich einen Haufen von schlecht kodierten Daten in meiner UTF8 colum. Ich fand dieser Artikel, die scheint, um ein ähnliches problem, die ist "UTF8 eingefügt in cp1251", aber mein problem ist "Latin1 eingefügt in UTF8". Ich habe versucht, die Bearbeitung der Abfragen, es zu konvertieren, die latin1-Daten auf UTF8, aber kann nicht ankommen es zu wirken. Entweder die Daten kommen aus der gleichen, oder sogar noch mehr entstellt als vorher. Nur als Beispiel, das Wort Québec, die zeigen, wie Québec.

[WEITERE INFOS]

Wenn die Auswahl der Daten, eingewickelt in HEX(), Québec hat den Wert 5175C383C2A9626563.

Erstellen Tabelle (gekürzt) dieser Tabelle ist.

CREATE TABLE MyDBName.`MyTableName`
(
`ID` INT NOT NULL AUTO_INCREMENT, 
.......
`City` CHAR(32) NULL, 
.......
`)) ENGINE InnoDB CHARACTER SET utf8;
  • bitte posten Sie die CREATE TABLE-Anweisung für die Tabelle in Frage, zusammen mit ein paar gebrochenen Zeilen, aber wickeln der Defekten Spalte in hex(), etwa so: SELECT HEX(name) FROM cities LIMIT 5. mit diesen Informationen kann ich Ihnen helfen herauszufinden, die richtige Art und Weise zu beheben, die es nach diesem Artikel. (BTW: ich Liebe diesen Artikel! es ' s rettete mein Hintern schon ein paar mal.)
InformationsquelleAutor Kibbee | 2009-09-17
Schreibe einen Kommentar