Projet

Général

Profil

Actions

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 plus de 9 ans. Mis à jour il y a plus de 6 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
08/11/2014
Echéance:
% réalisé:

0%

Temps estimé:
Version utilisée:

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 plus de 9 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 plus de 9 ans

  • Version cible 0.8.2 supprimé

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 plus de 9 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 plus de 9 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 plus de 9 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 Johan Cwiklinski il y a plus de 9 ans

  • Statut changé de Nouveau à Fermé

Mis à jour par Simon Georget il y a plus de 8 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 presque 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 plus de 6 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.

Actions

Formats disponibles : Atom PDF