Conversion des caractères Latin1 d'une table UTF8 en UTF8
Votre requête concerne la conversion des caractères Latin1 d'une table UTF8 en UTF8. Examinons les détails du problème et la solution proposée pour vous aider à résoudre ce problème.
Contexte
Vous avez découvert la nécessité de définir correctement le jeu de caractères entre PHP et MySQL pour gérer les données UTF-8. Cela a résolu l'insertion de nouveaux caractères diacritiques. Cependant, vous rencontrez un problème lorsque vous tentez de corriger les lignes existantes contenant des caractères corrompus.
Solution proposée
La solution fournie utilise l'approche suivante :
Convertir les valeurs binaires en UTF8 :
convert(cast(convert(name using latin1) as binary) using utf8)
Cette fonction MySQL récupère les données UTF-8 à partir des données Latin1 corrompues.
Ajustement facultatif (en fonction de la modification des données) :
Vous pouvez omettre la conversion interne (convert(name using latin1)) si les données n'ont pas été modifiées de manière significative lors de la conversion d'encodage initiale. Dans ce cas, la fonction serait simplement :
convert(cast(name as binary) using utf8)
En appliquant cette solution, vous pouvez réussir à convertir les caractères Latin1 stockés dans votre table UTF8 au format UTF8 correct, en résolvant le problème problème de corruption de personnage. N'oubliez pas d'ajuster la fonction de conversion en fonction de la nature de l'altération des données subie lors du processus d'encodage précédent.
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!