Anomalie #879
ferméProblème d'encodage utf-8 après mise à jour de 0.7 à 0.8.2
Ajouté par Yannick Pavard il y a environ 10 ans. Mis à jour il y a environ 7 ans.
0%
Description
Hello,
Je viens de migrer mon installation de Galette, j'avais la version 0.7.4 avant (il me semble) et je suis passé à 0.8.2 Mais tout ce qui est dans la base de données à un problème d'encodage des accents.
Est-ce qu'il y a quelque chose que je peux faire ? Car avant cela tout fonctionnait bien.
Merci
Mis à jour par Yannick Pavard il y a environ 10 ans
J'ai vérifié dans la base de données et les accents ont tous chiés ;)
Bien sûr j'ai un backup.. est-ce que mon backup avait les accents de même ou est-ce lors de la mise à jour...
Mis à jour par Johan Cwiklinski il y a environ 10 ans
- Version cible
0.8.2supprimé
Ce problème a été abordé sur la liste, j'ai proposé une solution :
https://mail.gna.org/public/galette-discussion/2014-09/msg00032.html
D'autres utilisateurs ont rencontré le même problème, certains ont proposé une solution plus pérenne ; voir les archives de la liste.
Mis à jour par Johan Cwiklinski il y a environ 10 ans
À priori, la solution qui serait la plus correcte :
https://mail.gna.org/public/galette-discussion/2014-10/msg00076.html
Mis à jour par Yannick Pavard il y a environ 10 ans
Merci Johan !
J'ai opté pour la ligne 125 à commenter. C'est sûr que l'idéal ce serait de réencoder les caractères comme il faut dans la base de données mais j'ai essayé sans succès.
Je n'ai pas d'options personnalisées lors de l'exportation pour exporter en iso.
J'ai bien tenté une exportation par défaut, j'ai lancé la commande "recode -f utf8..iso-8859-1 galette.sql" pour forcer l'encodage en iso et ensuite dans notepad+ j'ai réencoder le fichier en utf8. La moitié des caractères se sont retrouvés bien encodés mais pas tous.. bizarre.
Bref, en attendant de trouver mieux je vais opter pour ca.
Merci pour tout ce que tu fais pour nous Johan !
Bon weekend
Mis à jour par Yannick Pavard il y a environ 10 ans
Y'a un membre qui m'a aidé pour ré-encoder la base de données, merci à François qui se reconnaîtra !
Vous pouvez maintenant fermer ce ticket.
Mis à jour par Simon Georget il y a environ 9 ans
@ Yannick Pavard ou François : pouvez-vous me donner la procédure - j'ai le même problème ? Ca m'éviterait des tentatives (peut-être vaines)
Merci
Mis à jour par christophe Le Roux il y a plus de 8 ans
Salut
J'ai réussi a me débrouiller en faisant un savant mélange avec sed et un script python. Je vous décrit la procédure mais je ne mettrais pas mon script car il est vraiment spécifique (probablement pas exhaustif) et surtout c'est du one shot.
1 - Dump des données
2 - Mise à la ligne de chaque insert dans la base :
sed -i -e "s/),/),\n/g" dump.sql
3 - Protection des simples quotes ;
sed -i -e 's#\\\x27#\x27\x27#g' dump.sql
4 - Application du script python cité ici : [[https://blog.luminoso.com/2012/08/20/fix-unicode-mistakes-with-python/]]
5 - Corrections sed suppémentaires pour modifier les caractères résiduels :
sed -i -e "s/è/è/g" -e "s/é/é/g" -e "s/î/î/g" -e "s/â/â/g" \ -e "s/ü/ü/g" -e "s/É/É/g" -e "s/ë/ë/g" -e "s/È/È/g" -e "s/ô/ô/g" \ -e "s/ê/ê/g" -e "s/ë/ë/g" -e "s/È/È/g" -e "s/È/È/g" dump.sql
En esperant que ca puisse vous aider.
Bonne journée
Mis à jour par Geoffrey Mosini il y a environ 7 ans
christophe Le Roux a écrit :
Salut
J'ai réussi a me débrouiller en faisant un savant mélange avec sed et un script python. Je vous décrit la procédure mais je ne mettrais pas mon script car il est vraiment spécifique (probablement pas exhaustif) et surtout c'est du one shot.
1 - Dump des données
2 - Mise à la ligne de chaque insert dans la base :
[...]
3 - Protection des simples quotes ;
[...]
4 - Application du script python cité ici : [[https://blog.luminoso.com/2012/08/20/fix-unicode-mistakes-with-python/]]
5 - Corrections sed suppémentaires pour modifier les caractères résiduels :[...]
En esperant que ca puisse vous aider.
Bonne journée
J'ai tenté la méthode et pas mal galéré avant de réaliser qu'il y a beaucoup plus simple.
Enfin il faut à minima avoir un accès shell à son serveur :
Faire un dump en changeant l'encodage de caractère de réception :
mysqldump -u VOTRE_UTILISATEUR -p --databases avb_galette --default-character-set=latin1 > galette.sql
Ouvrir le document et éditer dans les premières lignes :
/*!40101 SET NAMES latin1 */;
mettre à la place :
/*!40101 SET NAMES utf8 */;
Et réimporter la base :
mysql --user=VOTRE_UTILISATEUR --password=VOTRE_MOT_DE_PASSE < galette.sql
Le seul hic c'est que du coup des doublons de clés secondaires sont apparus, mais c'était vite réparé. La méthode de reconvertir avec un outil me cassait complètement le code SQL.