Forum Linux.général Double Encodage UTF-8 dans les dumps MySQL

Posté par  .
Étiquettes : aucune
0
9
mar.
2008
Le problème :
MySQL croit que le contenu est encodé en latin1, même si son contenu est
réellement en utf8. Lors d'un export, il réencode la chaîne et va nous
pondre un truc complètement illisible et intraitable : une chaine utf-8 réencodé en utf-8. Il n'existe pas de programmes pour les faire revenir à un état normal, si ce n'est une librairie perl.

Pour les allergiques au langage des admins, il existe une autre solution :

  1. Faire un dump en forçant un character set à latin1, ce qui empeche
    cette cochonnerie de réencoder.
    mysqldump --set-charset latin1 ...

  2. Changer l'entête du dump pour lui dire que c'est de l'utf8.
    NAMES=latin1 => NAME=utf8

  3. Recharger dans l'autre sens.
    mysql ... < dump.sql


Et ô miracle de la technologie, les bases sont désormais cohérentes au niveau de l'encodage.
  • # .

    Posté par  (site web personnel) . Évalué à 2.

    l'utf8 §a pue
  • # Suggestion

    Posté par  . Évalué à 1.

    Il faut forcer le meme charset à l'import qu'à l'export.

    je n'ai jamais eu de probleme en procédant ainsi.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.