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!