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.

Suivre le flux des commentaires

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