Maison >développement back-end >tutoriel php >Comment convertir des caractères Latin1 en UTF-8 dans une table MySQL UTF-8 ?

Comment convertir des caractères Latin1 en UTF-8 dans une table MySQL UTF-8 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 19:41:30968parcourir

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

Conversion des caractères Latin1 d'une table UTF8 en UTF8

Votre requête concerne la conversion des caractères Latin1 d'une table UTF8 en UTF8. Examinons les détails du problème et la solution proposée pour vous aider à résoudre ce problème.

Contexte

Vous avez découvert la nécessité de définir correctement le jeu de caractères entre PHP et MySQL pour gérer les données UTF-8. Cela a résolu l'insertion de nouveaux caractères diacritiques. Cependant, vous rencontrez un problème lorsque vous tentez de corriger les lignes existantes contenant des caractères corrompus.

Solution proposée

La solution fournie utilise l'approche suivante :

  1. Convertir les valeurs binaires en UTF8 :

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

    Cette fonction MySQL récupère les données UTF-8 à partir des données Latin1 corrompues.

    Ajustement facultatif (en fonction de la modification des données) :

    Vous pouvez omettre la conversion interne (convert(name using latin1)) si les données n'ont pas été modifiées de manière significative lors de la conversion d'encodage initiale. Dans ce cas, la fonction serait simplement :

    convert(cast(name as binary) using utf8)

En appliquant cette solution, vous pouvez réussir à convertir les caractères Latin1 stockés dans votre table UTF8 au format UTF8 correct, en résolvant le problème problème de corruption de personnage. N'oubliez pas d'ajuster la fonction de conversion en fonction de la nature de l'altération des données subie lors du processus d'encodage précédent.

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