Correction du double codage Unicode dans les tables UTF-8
La rencontre d'anomalies telles que "ñ" au lieu de "ñ" signifie un double potentiel -problème d'encodage avec les caractères UTF-8. Cela se produit lorsqu'un fichier CSV est chargé par erreur en supposant qu'il est codé en Latin1, ce qui entraîne une identification erronée des caractères multi-octets comme des caractères uniques, puis un nouveau codage en UTF-8.
Solution
Pour corriger ce double encodage, une fonction MySQL est disponible :
<code class="sql">CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)</code>
Cette fonction prend les caractères codés en Latin1, les convertit en binaire, puis les reconvertit en UTF-8, supprimant efficacement le double encodage.
Correction via l'instruction UPDATE
Pour corriger les champs concernés, vous pouvez utiliser la fonction dans une instruction UPDATE :
<code class="sql">UPDATE tablename SET field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);</code>
En exécutant cette instruction, les caractères problématiques seront restaurés dans leur représentation UTF-8 correcte.
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!