Maison >base de données >tutoriel mysql >Comment puis-je convertir des caractères Latin1 en UTF-8 dans une table de base de données UTF-8 ?

Comment puis-je convertir des caractères Latin1 en UTF-8 dans une table de base de données UTF-8 ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-02 21:40:12665parcourir

How Can I Convert Latin1 Characters to UTF-8 in a UTF-8 Database Table?

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 :

  • La fonction convert() convertit d'abord la valeur actuelle de la colonne de nom en codage Latin1 à l'aide du convertisseur latin1 .
  • La chaîne binaire résultante est ensuite reconvertie en chaîne à l'aide du binaire convertisseur.
  • Enfin, la chaîne est convertie en UTF-8 à l'aide du convertisseur utf8.

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!

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