Heim >Datenbank >MySQL-Tutorial >Wie repariert man beschädigte UTF-8-Kodierung in MySQL-Datenbanken?

Wie repariert man beschädigte UTF-8-Kodierung in MySQL-Datenbanken?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-07 07:58:13574Durchsuche

How to Repair Corrupted UTF-8 Encoding in MySQL Databases?

Reparieren beschädigter UTF-8-Kodierung

Dieser Artikel befasst sich mit dem Problem der fehlerhaften UTF-8-Verschlüsselung in MySQL-Datenbanken. Das Problem äußert sich in verstümmelten Zeichen wie „î“, wenn PHP 5 mit einer utf8_general_ci-Sortierung verwendet wird und ein korrekter UTF-8-Header festgelegt ist.

Zuordnung beschädigter Zeichen

Die folgende Funktion kann verwendet werden, um Instanzen beschädigter Zeichen dem entsprechenden korrekten UTF-8 zuzuordnen Zeichen:

function fixUtf8($string) {
  $replacements = array(
    "î" => "®",
    "í" => "í",
    "ü" => "ü"
  );
  
  return str_ireplace(array_keys($replacements), array_values($replacements), $string);
}

Datenbank-Dump und Wiederherstellung

Ein anderer Ansatz besteht darin, die Datenbankdaten zu sichern und neu zu laden, um doppelt codierte UTF-8-Zeichen aufzulösen:

mysqldump -h DB_HOST -u DB_USER -p DB_PASSWORD --opt --quote-names \
    --skip-set-charset --default-character-set=latin1 DB_NAME > DB_NAME-dump.sql

mysql -h DB_HOST -u DB_USER -p DB_PASSWORD \
    --default-character-set=utf8 DB_NAME < DB_NAME-dump.sql

Diese Methode löst das Problem normalerweise effektiv.

Das obige ist der detaillierte Inhalt vonWie repariert man beschädigte UTF-8-Kodierung in MySQL-Datenbanken?. 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