Maison >développement back-end >tutoriel php >Comment convertir les caractères Latin1 d'une table UTF8 en UTF8 ?

Comment convertir les caractères Latin1 d'une table UTF8 en UTF8 ?

DDD
DDDoriginal
2024-11-02 13:51:02789parcourir

How to Convert Latin1 Characters in a UTF8 Table to UTF8?

Convertir les caractères latin1 d'une table UTF8 en UTF8

Vous avez remarqué que vous avez manqué d'insérer mysql_set_charset('utf8') dans vos scripts PHP , et maintenant toutes les tables sont dans le classement utf8_unicode_ci, ce qui fait que l'insertion de caractères avec des signes diacritiques ne se comporte pas correctement.

Auparavant, chaque fois que vous essayiez d'insérer quelque chose avec des signes diacritiques, les données ne s'affichaient pas correctement en raison de la non-concordance. dans les jeux de caractères. Cependant, après avoir corrigé le jeu de caractères entre PHP et MySQL, les nouvelles insertions sont désormais stockées correctement.

L'étape suivante consiste à corriger toutes les anciennes lignes qui sont encore gâchées. Vous avez essayé d'utiliser mb_convert_encoding et iconv, mais les chaînes sont tronquées après un certain caractère.

Pour récupérer les données, vous pouvez utiliser une fonction MySQL comme :

convert(cast(convert(name using latin1) as binary) using utf8)

Selon la façon dont les données ont été modifiées lors de la conversion d'encodage, vous devrez peut-être omettre la conversion interne. Cette fonction convertira les données du Latin-1 en binaire puis en UTF-8, garantissant que tous les caractères s'affichent correctement.

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