Conversion des caractères Latin1 en UTF8 dans une table UTF8
Votre question décrit un problème dans lequel les données précédemment insérées contenant des signes diacritiques ont été corrompues en raison d'un jeu de caractères incorrect manipulation.
Problème :
Vos scripts PHP n'ont pas spécifié le jeu de caractères UTF-8 pour la communication avec la base de données, ce qui a conduit au stockage des caractères Latin1 dans une table UTF-8. Cela entraînait un affichage incorrect des caractères sous forme de séquences "Ã".
Solution :
La solution réside dans l'utilisation d'une fonction MySQL appelée convert() pour convertir explicitement le données du codage Latin1 vers UTF-8. Voici un exemple de requête :
UPDATE `table` SET `name` = convert(cast(convert(`name` using latin1) as binary) using utf8)
Explication :
Ce processus de conversion garantit que tous les caractères Latin1 corrompus sont correctement convertis en UTF-8, en préservant l'affichage correct des signes diacritiques. Notez que la conversion interne à l'aide de la fonction convert() peut ne pas être nécessaire dans tous les cas, en fonction de la corruption spécifique des donné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!