Maison > base de données > tutoriel mysql > Comment puis-je récupérer des caractères Latin1 corrompus dans les tables MySQL UTF8 ?

Comment puis-je récupérer des caractères Latin1 corrompus dans les tables MySQL UTF8 ?

Susan Sarandon
Libérer: 2024-11-30 14:28:11
original
331 Les gens l'ont consulté

How Can I Recover Corrupted Latin1 Characters in UTF8 MySQL Tables?

Récupération des caractères Latin1 dans les tables UTF8 : une solution

Comme vous l'avez mentionné, définir le jeu de caractères entre PHP et MySQL garantit de nouvelles insertions sont correctement stockés. Cependant, récupérer d'anciennes données avec des signes diacritiques qui étaient auparavant stockées en tant que Latin1 et corrompues plus tard peut s'avérer difficile.

Pour résoudre ce problème, vous pouvez utiliser la fonction de conversion MySQL :

convert(cast(convert(name using latin1) as binary) using utf8)
Copier après la connexion

Par défaut , cette fonction peut réparer la plupart des données corrompues sans aucune autre modification. Cependant, vous devrez peut-être ajuster la conversion interne en fonction de la façon dont les données ont été modifiées lors de la conversion d'encodage initiale.

Considérez l'exemple suivant :

$result = mysql_iquery('SELECT * FROM `table`');
while ($row = mysql_fetch_assoc($result)) {
    $message = $row['name'];
    $message = convert(cast(convert($message using latin1) as binary) using utf8);
    mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string($message).'" WHERE `a1`="'.$row['a1'].'"');
}
Copier après la connexion

En utilisant cette fonction, vous devez pouvoir récupérer les signes diacritiques corrompus et mettre à jour correctement les lignes concernées.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal