Korrektur doppelt codierter UTF8-Zeichen in einer UTF-8-Tabelle
Bei einem früheren Importvorgang mit LOAD DATA INFILE wurde fälschlicherweise davon ausgegangen, dass die Eingabe CSV ist Die Datei war Latin1-codiert. Dies führte dazu, dass Multibyte-Zeichen in zwei Einzelbyte-Zeichen aufgeteilt und anschließend in UTF-8 doppelt codiert wurden, wodurch Anomalien wie „ñ“ anstelle von „ñ“ entstanden.
Um diese falsch codierten Zeichenfolgen zu korrigieren, hat MySQL bietet eine Lösung mit der Funktion CONVERT():
CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)
Diese Funktion nimmt das doppelt codierte Feld und konvertiert es sequentiell von Latin1 (unter der Annahme der ursprünglichen Dateicodierung) in eine binäre Darstellung und schließlich in UTF-8. Dadurch wird die doppelte Kodierung effektiv rückgängig gemacht.
Um diese Korrektur anzuwenden, kann eine UPDATE-Anweisung ausgeführt werden:
UPDATE tablename SET field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);
Diese Anweisung ersetzt die vorhandenen Feldwerte durch die korrigierten und stellt die beabsichtigte UTF wieder her -8 Darstellung der Multibyte-Zeichen.
Das obige ist der detaillierte Inhalt vonWie behebe ich doppelt codierte UTF8-Zeichen in einer MySQL-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!