Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Konvertieren einer MySQL-Tabelle mit falsch codierten Daten in UTF-8

Diese Methode unten sieht wirklich vielversprechend aus und noch besser, schön in ihrer Einfachheit. Die Idee ist, dass Sie Ihre gesamte Datenbank als latin1 mysqldumpen und sie dann neu codiert als utf-8 importieren.

Exportieren:

Importieren:

Ich nehme keine Anerkennung für diese Lösung, sie stammt vollständig von Blog von Gareth Price . Es hat bei allen funktioniert, die ihm bisher einen Kommentar hinterlassen haben:"Wow Mann, du hast gerade mein Leben gerettet. Ich habe nicht 2 Stunden damit verbracht, sondern 2 Tage" meine Aufmerksamkeit erregt.

Aktualisierung Nr. 1: Sieht so aus, als ob Gareth war nicht die erste um dies zu entdecken.

Aktualisierung Nr. 2: Ich habe das gerade ausprobiert und es hat wunderbar für meine UTF8-gespeicherte-als-latin1-Datenbank funktioniert. Stellen Sie nur sicher, dass Sie vorher den Standardzeichensatz in Ihrer Datenbank auf utf8 umstellen Importieren, sonst erhalten Sie am Ende einfache Fragezeichen, wo die Sonderzeichen waren. Natürlich könnte dies viele andere Auswirkungen haben, also testen Sie zuerst wie die Hölle.

Und wenn Sie irgendwelche Tabellen haben, die nicht auf das Standardschema gesetzt sind:

(Die gleiche Idee, wenn Sie spaltenspezifische Zeichensatzeinstellungen haben, müssen Sie ALTER TABLE [table] ausführen SPALTE ÄNDERN [Einstellungen] ohne Angabe von CHARACTER SET, also geht es zurück zum Tabellenstandard)