Maison >base de données >tutoriel mysql >Comment réparer l'encodage UTF-8 corrompu dans les bases de données MySQL ?

Comment réparer l'encodage UTF-8 corrompu dans les bases de données MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-07 07:58:13574parcourir

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

Réparation de l'encodage UTF-8 corrompu

Cet article aborde le problème de la suppression des erreurs UTF-8 dans les bases de données MySQL. Le problème se manifeste par des caractères tronqués comme "î" lorsque PHP 5 est utilisé avec un classement utf8_general_ci et qu'un en-tête UTF-8 approprié est défini.

Mappage des caractères corrompus

La fonction suivante peut être utilisée pour mapper les instances de caractères corrompus à leur UTF-8 correct correspondant caractères :

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

Dump et restauration de la base de données

Une autre approche consiste à vider les données de la base de données et à les recharger pour résoudre les caractères UTF-8 à double codage :

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

Cette méthode résout généralement le problème efficacement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn