Maison > développement back-end > tutoriel php > Comment convertir correctement les caractères Latin1 en UTF-8 dans une base de données MySQL ?

Comment convertir correctement les caractères Latin1 en UTF-8 dans une base de données MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-03 20:22:29
original
477 Les gens l'ont consulté

How to Correctly Convert Latin1 Characters to UTF-8 in a MySQL Database?

Convertir les caractères Latin1 dans une table UTF-8 en UTF-8

Différence d'encodage :

Vous avez découvert un désalignement entre les paramètres d'encodage PHP et MySQL, conduisant à un stockage incorrect des caractères diacritiques dans une table UTF-8. Bien que les nouvelles insertions soient désormais correctes, les anciennes lignes contiennent toujours des caractères corrompus.

Mesure corrective :

Pour corriger ce problème, utilisez la fonction convert() de MySQL :

<code class="sql">convert(cast(convert(name using  latin1) as binary) using utf8)</code>
Copier après la connexion

Cette fonction convertit les données codées Latin1 en UTF-8. La double conversion garantit que les données ne sont pas tronquées pendant le processus de conversion.

Exemple d'utilisation :

Dans votre code, appliquez la conversion dans votre requête de mise à jour :

<code class="sql">mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string(convert(cast(convert(name using  latin1) as binary) using utf8)).'" WHERE `a1`="'.$row['a1'].'"');</code>
Copier après la connexion

Cela mettra à jour la colonne de nom de votre table avec l'UTF-8 correctement converti caractères.

Remarque :

En fonction de la modification des données lors de la conversion d'encodage, vous devrez peut-être omettre la fonction de conversion interne de la requête. Testez les deux scénarios et adoptez celui qui donne les résultats souhaités.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal