Convertir les caractères Latin1 d'une table UTF8 en UTF8
Vous avez rencontré un problème où les caractères avec des signes diacritiques (par exemple, "Jáuò Iñe" ) ont été incorrectement stockés dans une table UTF8 en raison d'un "mysql_set_charset('utf8')" manquant call.
Pour résoudre ce problème, vous essayez de convertir les lignes concernées à l'aide de "mb_convert_encoding" et "iconv." Cependant, ces méthodes ne parviennent pas à capturer les caractères au-delà du premier caractère « illégal » (représenté par « ă » dans l'exemple).
L'approche recommandée pour corriger les données consiste à utiliser la fonction MySQL :
convert(cast(convert(name using latin1) as binary) using utf8)
Explication :
Dans certains cas, la conversion interne peut ne pas être nécessaire, car les données peuvent déjà être stockées dans un format binaire adapté à la conversion en UTF-8. Tester les deux options devrait déterminer l’approche correcte pour votre situation.
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!