Maison > base de données > tutoriel mysql > Comment puis-je corriger les caractères Latin1 incorrectement stockés au format UTF8 dans MySQL ?

Comment puis-je corriger les caractères Latin1 incorrectement stockés au format UTF8 dans MySQL ?

DDD
Libérer: 2024-12-03 15:06:10
original
399 Les gens l'ont consulté

How Can I Correct Latin1 Characters Incorrectly Stored as UTF8 in MySQL?

Correction des caractères Latin1 stockés au format UTF8 dans une table MySQL

Votre problème provient d'une conversion incorrecte des données Latin1 en UTF8 lors de l'insertion. Malgré la définition des jeux de caractères corrects, les anciennes données restent corrompues par des caractères incorrects. Pour remédier à cette situation, nous devons convertir les données concernées dans la représentation UTF8 correcte.

La solution recommandée implique d'utiliser la fonction MySQL :

convert(cast(convert(name using latin1) as binary) using utf8)
Copier après la connexion

Cette fonction prend les données de la colonne de nom, l'interprète comme binaire Latin1, puis le convertit en UTF8. La conversion externe en binaire garantit que les données sont traitées comme des données brutes, empêchant ainsi d'autres conversions de jeux de caractères de les corrompre.

Voici un exemple de requête :

UPDATE `table` SET `name` = convert(cast(convert(name using latin1) as binary) using utf8)
WHERE `name` LIKE '%[non-UTF8 characters]%'
Copier après la connexion

Cette requête met à jour toutes les lignes avec des valeurs non -Caractères UTF8 dans la colonne de nom, garantissant que les données sont converties correctement.

Remarque : Si le processus d'encodage d'origine Si vous avez légèrement modifié les données, vous devrez peut-être omettre la conversion interne en binaire Latin1 dans l'appel de la fonction de conversion.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal