Maison  >  Article  >  base de données  >  Comment réparer les caractères UTF8 doublement codés dans une table MySQL ?

Comment réparer les caractères UTF8 doublement codés dans une table MySQL ?

DDD
DDDoriginal
2024-10-31 00:15:03891parcourir

How to Fix Double-Encoded UTF8 Characters in a MySQL Table?

Correction des caractères UTF8 doublement codés dans une table UTF-8

Une opération d'importation précédente utilisant LOAD DATA INFILE supposait à tort que le CSV d'entrée le fichier était codé en Latin1. Cela a conduit à ce que les caractères multi-octets soient divisés en deux caractères à un octet, puis codés deux fois en UTF-8, créant des anomalies telles que « ñ » au lieu de « ñ ».

Pour rectifier ces chaînes mal codées, MySQL fournit une solution en utilisant la fonction CONVERT() :

CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)

Cette fonction prend le champ à double encodage et le convertit séquentiellement de Latin1 (en supposant l'encodage du fichier d'origine) en représentation binaire et enfin en UTF-8, annulant efficacement le double encodage.

Pour appliquer cette correction, une instruction UPDATE peut être exécutée :

UPDATE tablename SET
    field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);

Cette instruction remplacera les valeurs de champ existantes par celles corrigées, restaurant ainsi l'UTF prévu -8 représentation des caractères multi-octets.

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