Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man Latin1-Zeichen in einer MySQL-Datenbank korrekt in UTF-8?

Wie konvertiert man Latin1-Zeichen in einer MySQL-Datenbank korrekt in UTF-8?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 20:22:29384Durchsuche

How to Correctly Convert Latin1 Characters to UTF-8 in a MySQL Database?

Latin1-Zeichen in einer UTF-8-Tabelle in UTF-8 konvertieren

Kodierungsdiskrepanz:

Sie haben eine entdeckt Fehlausrichtung zwischen PHP- und MySQL-Kodierungseinstellungen, was zu einer falschen Speicherung diakritischer Zeichen in einer UTF-8-Tabelle führt. Während neue Einfügungen jetzt korrekt sind, enthalten ältere Zeilen immer noch beschädigte Zeichen.

Korrekturmaßnahme:

Um dieses Problem zu beheben, verwenden Sie die Funktion „convert()“ von MySQL:

<code class="sql">convert(cast(convert(name using  latin1) as binary) using utf8)</code>

Diese Funktion konvertiert Latin1-codierte Daten in UTF-8. Durch die doppelte Konvertierung wird sichergestellt, dass die Daten während des Konvertierungsprozesses nicht abgeschnitten werden.

Beispielverwendung:

Wenden Sie in Ihrem Code die Konvertierung innerhalb Ihrer Aktualisierungsabfrage an:

<code class="sql">mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string(convert(cast(convert(name using  latin1) as binary) using utf8)).'" WHERE `a1`="'.$row['a1'].'"');</code>

Dadurch wird die Namensspalte in Ihrer Tabelle mit den korrekt konvertierten UTF-8-Zeichen aktualisiert.

Hinweis:

Abhängig von der Datenänderung Während der Codierungskonvertierung müssen Sie möglicherweise die innere Konvertierungsfunktion in der Abfrage weglassen. Testen Sie beide Szenarien und übernehmen Sie das Szenario, das die gewünschten Ergebnisse liefert.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Latin1-Zeichen in einer MySQL-Datenbank korrekt in UTF-8?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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