Heim > Datenbank > MySQL-Tutorial > Wie kann ich Latin1-Zeichen in einer UTF8-MySQL-Tabelle korrekt in UTF8 konvertieren?

Wie kann ich Latin1-Zeichen in einer UTF8-MySQL-Tabelle korrekt in UTF8 konvertieren?

DDD
Freigeben: 2024-12-09 04:29:09
Original
821 Leute haben es durchsucht

How Can I Correctly Convert Latin1 Characters in a UTF8 MySQL Table to UTF8?

Latin1-Zeichen in einer UTF8-Tabelle in UTF8 konvertieren

Sie sind auf ein Problem gestoßen, bei dem Zeichen mit diakritischen Zeichen (z. B. „Jáuò Iñe“) ) wurden aufgrund eines Fehlens fälschlicherweise in einer UTF8-Tabelle gespeichert „mysql_set_charset('utf8')“-Aufruf.

Um dieses Problem zu beheben, versuchen Sie, die betroffenen Zeilen mit „mb_convert_encoding“ und „iconv“ zu konvertieren. Allerdings können diese Methoden keine Zeichen erfassen, die über das erste „illegale“ Zeichen hinausgehen (im Beispiel als „ă“ dargestellt).

Der empfohlene Ansatz zur Korrektur der Daten ist die Verwendung der MySQL-Funktion:

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

Erklärung:

  1. Der äußere Konverter Die Funktion konvertiert die Daten von ihrer aktuellen Binärdarstellung in eine Zeichenfolge unter Verwendung des UTF-8-Zeichensatzes.
  2. Die Konvertierungsfunktion inner konvertiert die Daten von ihrer ursprünglichen Latin-1-Darstellung in eine Binärdarstellung .
  3. Die Cast-Funktion stellt sicher, dass die innere Konvertierung einen binären Wert zurückgibt.

In manchen Fällen ist die innere Konvertierung möglicherweise nicht erforderlich, z Die Daten können bereits in einem Binärformat gespeichert sein, das für die Konvertierung in UTF-8 geeignet ist. Das Testen beider Optionen sollte den richtigen Ansatz für Ihre Situation ermitteln.

Das obige ist der detaillierte Inhalt vonWie kann ich Latin1-Zeichen in einer UTF8-MySQL-Tabelle korrekt in UTF8 konvertieren?. 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