Heim > Datenbank > MySQL-Tutorial > Wie kann ich Latin1-Zeichen korrigieren, die in MySQL fälschlicherweise als UTF8 gespeichert sind?

Wie kann ich Latin1-Zeichen korrigieren, die in MySQL fälschlicherweise als UTF8 gespeichert sind?

DDD
Freigeben: 2024-12-03 15:06:10
Original
410 Leute haben es durchsucht

How Can I Correct Latin1 Characters Incorrectly Stored as UTF8 in MySQL?

Korrigieren von als UTF8 in einer MySQL-Tabelle gespeicherten Latin1-Zeichen

Ihr Problem entsteht durch eine fehlerhafte Konvertierung von Latin1-Daten in UTF8 beim Einfügen. Trotz der Einstellung der richtigen Zeichensätze bleiben die älteren Daten mit falschen Zeichen beschädigt. Um diese Situation zu beheben, müssen wir die betroffenen Daten in die korrekte UTF8-Darstellung konvertieren.

Die empfohlene Lösung beinhaltet die Verwendung der MySQL-Funktion:

convert(cast(convert(name using latin1) as binary) using utf8)
Nach dem Login kopieren

Diese Funktion übernimmt die Namensspaltendaten, interpretiert es als Latin1-Binärdatei und konvertiert es dann in UTF8. Die äußere Konvertierung in Binär stellt sicher, dass die Daten als Rohdaten behandelt werden und verhindert, dass sie durch weitere Zeichensatzkonvertierungen beschädigt werden.

Hier ist eine Beispielabfrage:

UPDATE `table` SET `name` = convert(cast(convert(name using latin1) as binary) using utf8)
WHERE `name` LIKE '%[non-UTF8 characters]%'
Nach dem Login kopieren

Diese Abfrage aktualisiert alle Zeilen mit nicht -UTF8-Zeichen in der Namensspalte, um sicherzustellen, dass die Daten korrekt konvertiert werden.

Hinweis: Wenn sich der ursprüngliche Kodierungsprozess geändert hat Wenn Sie die Daten geringfügig ändern, müssen Sie möglicherweise die innere Konvertierung in die Binärdatei Latin1 im Aufruf der Konvertierungsfunktion weglassen.

Das obige ist der detaillierte Inhalt vonWie kann ich Latin1-Zeichen korrigieren, die in MySQL fälschlicherweise als UTF8 gespeichert sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage