#1 Le 05/03/2008, à 12:27
- azimuth024
Encodage des caractères sur le forum
Bonjour,
Depuis quelques temps j'ai un problème curieux sur le forum.
Sur certains topics (par exemple ici : http://forum.ubuntu-fr.org/viewtopic.php?pid=1582491#p1582491), certains posts ont un encodage bizarre. Les caractères accentués ne sont pas rendus correctement.
Par contre, sur la même page, d'autres posts sont correctement rendus.
Une image vaut parfois mieux qu'un long discours :
.
D'où ça peut venir ? De chez moi ? Ou de chez les autres posteurs ?
Hors ligne
#2 Le 05/03/2008, à 12:36
- Guillaume1
Re : Encodage des caractères sur le forum
Bonjour,
Je recontre le même problème depuis quelques temps.
Je crois avoir vu une mise à jour du language pack sur Gutsy il y a peu.
Le problème vient peut-être de là ?
J'ai aussi essayé de voir les paramètres d'affichage dans firefox mais rien n'y fait. Je suis en UTF-8 actuellement.
Si quelqu'un a une piste je suis aussi preneur.
Merci.
Hors ligne
#3 Le 05/03/2008, à 13:32
- aeacides
Re : Encodage des caractères sur le forum
Bonjour,
Je recontre le même problème depuis quelques temps.
Je crois avoir vu une mise à jour du language pack sur Gutsy il y a peu.
Le problème vient peut-être de là ?
J'ai aussi essayé de voir les paramètres d'affichage dans firefox mais rien n'y fait. Je suis en UTF-8 actuellement.
Si quelqu'un a une piste je suis aussi preneur.Merci.
Selon ce qui avait été mentionné par les admin, si je ne me trompe, c'était un problème d'encodage lors de la restauration de leur backup de la bd. Bizarrement, ça n'a toujours pas été réglé pour les vieux posts apparemment... peut-être le problème vient d'ailleurs, ou a été régler entre temps.
Xavier
http://www.q-be.ca
Hors ligne
#4 Le 05/03/2008, à 23:48
- jajaX
Re : Encodage des caractères sur le forum
disons que c'est assez dur à gérer en fait....
- les anciens sujets/posts ont un encodage, on va dire bizarre (j'ai pas réussi à le trouver enfin faut dire que j'ai juste chercher 5 mn...)
- les nouveaux ont le bon encodage...
et tout ça dans la même base de données.....
alors soit on laisse comme ça et les nouveaux sujets/posts sont lisibles mais les anciens non...
soit on corrige les anciens mais les nouveaux sujets/posts seront illisibles...
il y a aussi le choix de corriger les anciens mais vu le nombre de sujets/posts (et la taille de la base de données), faut au moins une semaine voir plus... car une base de données est un vrai "bordel" organisée ! seul le forum, pour laquelle elle a été conçue peur la lire. un humain aussi mais beaucoup moins vite
@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)
Hors ligne
#5 Le 06/03/2008, à 10:54
- azimuth024
Re : Encodage des caractères sur le forum
Ok, je vois l'histoire, donc le problème va disparaître petit à petit.
Merci !
Hors ligne
#6 Le 07/03/2008, à 19:34
- Ner0lph
Re : Encodage des caractères sur le forum
Ne serait-il pas possible de faire des requêtes datées (si tant est que ça puisse se résoudre par SQL) ?
Tiens, ma signature est Unicodée... Les signatures devraient être plus simples à corriger je pense, non ?
Dernière modification par Ner0lph (Le 07/03/2008, à 19:37)
Hors ligne
#7 Le 07/03/2008, à 19:41
- Jeece
Re : Encodage des caractères sur le forum
Ne serait-il pas possible de faire des requêtes datées (si tant est que ça puisse se résoudre par SQL) ?
Tiens, ma signature est Unicodée... Les signatures devraient être plus simples à corriger je pense, non ?
Peut être tout simplement en modifiant sa signature, recréant ainsi l'enregistrement dans la base dans le bon codage en court.
Content que ça vous plaise !
Hors ligne
#8 Le 07/03/2008, à 21:47
- Laurent82
Re : Encodage des caractères sur le forum
il y a aussi le choix de corriger les anciens mais vu le nombre de sujets/posts (et la taille de la base de données), faut au moins une semaine voir plus...
Euh franchement,il doit y avoir un truc qui m'échappe car je ne vois pas du tout pourquoi ça serait compliqué ou long.
On fait une exportation, vu que c'est mélangé comme tu dis, on ne peut pas directement convertir, mais il suffit de procéder par rechercher/remplacer avec sed ou perl, puis en ré-importe dans la base.
Comme ça, ça irait très vite à faire
J'ai loupé quoi ?
#9 Le 07/03/2008, à 22:27
- Jeece
Re : Encodage des caractères sur le forum
....
J'ai loupé quoi ?
Rien mais tu as juste oublié de copier ton script Sed/Perl qui fera tout ça 'achement vite
Content que ça vous plaise !
Hors ligne
#10 Le 07/03/2008, à 22:53
- jajaX
Re : Encodage des caractères sur le forum
et tu oublies aussi le fait que, par exemple, sur mon forum j'ai environ 1000 sujets comportant plus de 15000 posts. ici, on a passé le million de posts et plus 190 000 sujets. je te laisse imaginer la taille du fichier de la base de données...
mais c'est sans doute faisable via un script mais ça je sais pas faire...
@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)
Hors ligne
#11 Le 08/03/2008, à 18:35
- Ner0lph
Re : Encodage des caractères sur le forum
Peut être tout simplement en modifiant sa signature, recréant ainsi l'enregistrement dans la base dans le bon codage en court.
Tout à fait !
Mais je disais ça pour pouvoir le faire en 1 passe.
Hors ligne
#12 Le 09/03/2008, à 10:13
- MulX
Re : Encodage des caractères sur le forum
Pour la ligne sed ça doit ressembler à ça :
sed -e "s/à /à /ig" -e "s/À/À/ig" -e "s/ç/ç/ig" -e "s/é/é/ig" -e "s/ê/ê/ig" -e "s/è/è/ig" -e "s/É/É/ig" -e "s/ô/ô/ig" -e "s/û/û/ig"
Trouvé ici : http://forum.ubuntu-fr.org/viewtopic.php?pid=1558335#p1558335
Quand au script, je pense qui faut faire des requetes sur tout les champs de la base de donnée puis appliquer sed sur chaque reponse.
Mais comme en SQL je sais pas faire
D'ailleurs il ne dois pas être obligatoire d'exporter la base de donnée, on prend le post 1 on sed, le post 2 on sed ... (bien sur faut savoir un peut comment punBB range les posts)
Tchous, MulX. -- PlayOnLinux :) -- Gopherspace ! -- 6 * 9 = 42 (si si) -- Humph? -- Follow me!
Hors ligne
#13 Le 09/03/2008, à 11:13
- aleph
Re : Encodage des caractères sur le forum
ON NE MODIFIE JAMAIS UN CODAGE DE CARACTERES PAR DES METHODES DE SUBSITUTION DE CARACTERES. C'EST ET CE SERA TOUJOURS UN ECHEC.
sed -e "s/Ã /à /ig" ..... c'est déjà incorrect.
http://www.joelonsoftware.com/articles/Unicode.html
#14 Le 09/03/2008, à 11:54
- Laurent82
Re : Encodage des caractères sur le forum
aleph... dans certains cas il n'y a pas le choix je crois...
Il faut voir comment ça se présente dans la base de données, mais si des "é" sont mélangés avec des "é" suite à une erreur, le seul moyen me semble être de faire une substitution… Ou alors explique ?
L'échec que cela pourra donner, c'est si quelqu'un avait volontairement écrit "é" (comme je le fais en ce moment), ensuite son propos ne voudra plus rien dire puisque ça serait transformé en "é"… ceci dit c'est un moindre mal pour rendre le forum réutilisable.
Maintenant, comme dit, il faut voir comme ça se présente dans le BDD
essaie ceci
echo é | iconv -f ISO-8859-1 -t UTF-8
en émettant le é est encodé en utf-8, cela renverra é
Maintenant explique nous comment rattraper cette erreur autrement que par une substitution ?
#15 Le 09/03/2008, à 12:48
- MulX
Re : Encodage des caractères sur le forum
Effectivement celà fait de la subtitution mais comme actuellement les é sont mélanger avec les é (si je ne me plante pas, n'etant pas admin/modo/... du site)
Sinon effectivement cette commande fonctionne pour convertir un é en é puis un é en é
echo é | iconv -f ISO-8859-1 -t UTF-8 | iconv -f UTF-8 -t ISO8859-1
L'utilité ....
@aleph : dit moi en combien de fois sur internet tu as eu à écrire un mot contenant é ?
Tchous, MulX. -- PlayOnLinux :) -- Gopherspace ! -- 6 * 9 = 42 (si si) -- Humph? -- Follow me!
Hors ligne
#16 Le 09/03/2008, à 13:19
- Bois-Lairé
Re : Encodage des caractères sur le forum
je profite de sce sujet pour une demande liée à ce problème mais ne concernant que moi (ou peu de membres en tout cas)
Ce problème est assez génant au niveau de la lecture...
Mais pour moi c'est pire (enfin, tout est relatif, c'est pas la mort non plus...): mon nom d'utilisateur est touché! le forum me connait en tant que Bois-Lairé au lieu de Bois-Lairé... Heureusement qu'il y a le copier-coller pour me connecter!
Il ne m'est pas possible de le modifier moi-même... donc si un sympathique admin peut corriger mon pseudo, je lui en serais reconnaissant!
-- Passage total sous Linux avec Ubuntu Gutsy 15/01/2008 --
On progresse...
Hors ligne
#17 Le 09/03/2008, à 15:15
- aleph
Re : Encodage des caractères sur le forum
Une réponse courte est difficile et honnêtement je ne sais trop quoi dire. Je pourrais argumenter et développer chaque commentaire.
Ce qui est certain, toutes les remarques et commentaires buttent toujours sur un - le - problème récurrent : la compréhension du fonctionnement de codage des caractères. Qui a lu et compris le lien que j'ai donné précédemment ?
Vous pourriez argumenter, à juste titre, que je n'en sais pas plus que les autres. Ce à quoi je répondrais humblement, lisez mes dizaines de commentaires dans la rubrique Développement - Programmation à ce sujet. (J'ai abandonné).
En laissant l'aspect technique de côté et en essayant de prendre le problème par un autre bout.
Vous êtes-vous posé la question de savoir pourquoi les langages de programmation (du moins ceux que je connais et probablement et logiquement tous) possèdent leur propre bibliothèque de transcodage ?
#18 Le 09/03/2008, à 16:05
- Laurent82
Re : Encodage des caractères sur le forum
Tu restes sur ce principe alors que dans certains cas une substitution est la seule solution "potable"
si tu dois te débrouiller avec le mot suivant : été , il faut alors procéder par substitution non ?.
Le mot est juste un exemple, ça peut aussi être le cas avec un fichier ou les deux encodages auraient été mélangés par de mauvaises manipulations.
Mais si tu as des solutions pour ce genre problèmes précis, n'hésite pas à le dire plutôt que de nous renvoyer à notre ignorance
Mais encore une fois, je n'affirme pas que c'est la solution adaptée dans le cas u forum, il faudrait en savoir plus et je fais confiance à ceux qui s'occupent du site. J'espère juste que le problème sera prochainement corrigé car c'est un calvaire de lire certains messages.
#19 Le 09/03/2008, à 20:11
- aleph
Re : Encodage des caractères sur le forum
> Laurent82
> Mais si tu as des solutions pour ce genre problèmes précis, n'hésite pas à le dire plutôt que de nous renvoyer à notre ignorance.
Je ne te renvoie pas à ton ignorance. J'attire l'attention sur le fait que l'on ne corrige pas un problème de codage de caractères par de simples substitutions de ce que l'on croit être des caractères.
99% des personnes sur ce forum ne comprennent rien à ce foutu problème de codage (sans aucun reproche). Il n'y a qu'à voir la rubrique Bureautique ou Programmation et malheureusement en n années de visites sur ce forum toutes mes interventions sont restées vaines. Terrible à dire, on ne voit que des gens proposant des solutions bancales et clairement fausses à des problèmes qu'ils ne maîtrisent pas.
L'erreur fondamentale que la plupart des gens commettent est toujours la même: on ne modifie pas les codages des sources, fichiers ou bases de données, que ce soit un fichier html, un fichier tex, du code source ou autre, on adapte ses outils au codage de ce que l'on travailler.
Les outils comme iconv fonctionnent à merveille, mais encore faut-il savoir les utiliser et comprendre ce qu'ils font. Pour être court, les gens qui utilisent iconv à mauvais escient sont justement les gens qui ne comprennent pas le fonctionnement des codages de caractères ... et ceux qui le comprennent n'en ont pas besoin ! (voir paragraphe précédent).
Pour ce qui est d'une aide éventuelle ou une solution, je n'en ai pas parce que je ne connais tout simplement pas les données du problème bien que je comprenne ce qu'est le problème.
Petite remarque. Ces questions d'encodage n'ont rien à voir avec le système d'exploitation, ils se traitent de la même manière sur tous les OS.
Wikipédia est très riche en informations concernant les codages de caractères. La version anglaise est même plus touffue.
#20 Le 09/03/2008, à 20:51
- Laurent82
Re : Encodage des caractères sur le forum
Je ne te demandais pas une solution pour le problème du forum, mais pour celui tout simple que j'ai posé : un fichier texte où, suite à des mauvaises manipulations, on se retrouverait avec des "é" "é" mélangés.
Je ne vois toujours pas toujours pas en quoi la substitution de "é" vers "é" poserait problème...
#21 Le 09/03/2008, à 23:09
- aleph
Re : Encodage des caractères sur le forum
> Laurent82
> Je ne vois toujours pas toujours pas en quoi la substitution de "é" vers "é" poserait problème...
- Parce que et sans reproche tu ne serais probablement pas capable de "transformer" les 94 caractères (si j'ai compté juste) de la table iso-8859-1 qui posent problème.
- Il *serait* tout à fait possible de changer l'encodage par substitution de caractères en gardant à l'esprit que chaque caractère représente un byte dans un codage quelconque. Quand tu proposes de changer un "é" en "é" tu ne fais que changer - inconsciemment - le codage du glyphe "é" d'une tabelle iso-8859-1 de l'encodage utf-8 vers iso-8859-1. C'est une tâche difficile qui n'est pas sans danger.
Par exemple, dans le cas "Ã " --> "à", il n'y a pas un "blanc" derrière le "Ã" mais le byte 10100000 que tu ne vois pas parce que ce byte représente dans la tabelle iso-8859-1 un caractère non imprimable.
- En d'autre termes, substituer des caractères revient à effectuer un transcodage. Tu ne fais rien de plus que ce que ferait une librairie de decodage/encodage ad hoc qui travaille au niveau byte. Gain nul.
- Je fais l'impasse sur quelques subtilités supplémentaires.
> ...un fichier texte où, suite à des mauvaises manipulations, on se retrouverait avec des "é" "é" mélangés.
Ou un string dans un programme ou une base de données.
Si par malheur tu te trouves dans une situation avec des "é" "é" mélangés, la situation est inextricable. Cela signifie que ta source contient un mélange de bytes qui représentent ou sont censés représenter des caractères qui ne sont corrects ni dans un codage ni dans un autre. Tout transcodage devient impossible. Même une modification manuelle dans un éditeur est délicate à cause des bytes qui représenteraient des caractères invisibles. Problèmes très courant avec les utilisateurs inconscients qui s'amusent à bidouiller sans compréhension les codages.
----
Autre problème. Modifier des caractères avec un outil comme sed dans un script n'est pas optimal. Il ne devrait pas être difficile de comprendre que modifier un million de caractères revient à exécuter un million de fois l'application sed. On ne travaille sérieusement pas comme cela.
----
Python et sa console proposent tous les outils pour s'amuser à encoder/decoder des chaînes de caractères. J'ai proposé des dizaines d'exemples dans la rubrique Programmation.
En espérant avoir répondu au mieux.
#22 Le 10/03/2008, à 05:41
- Laurent82
Re : Encodage des caractères sur le forum
Oui, merci pour cette réponse précise.
Mais je t'avoue que ça ne change pas vraiment ce que je pensais au départ, à savoir que dans les situations inextricables comme tu dis, procéder ainsi peut être la seule solution et que les quelques problèmes/difficultés liés sont un moindre mal.
#23 Le 10/03/2008, à 19:12
- Yann
Re : Encodage des caractères sur le forum
Le pb n'est pas si inextricable Si tu as un melange de é et de bidules chelous, ca veut dire que tu as des trucs encodés et en iso, et en utf8 - les 2 étant valides en utf8.
Le pb qu on a nous c est qu'on a des trucs en utf8, et en utf8-reutf8é. Il faudrait qu'on déutf8 tout les messages antérieurs a une certaine date, ce qui implique l'écriture d un robot qui ferait tout ca
SI quelqu'un se sent d attaque ^^
Et pourtant moi, jsuis pas du genre délicat,
Dans un coin de la musse, j'ai posé mon matelas - Paulo Anarkao
Hors ligne
#24 Le 10/03/2008, à 19:15
- aeacides
Re : Encodage des caractères sur le forum
edit: Oups, j'avais pas lu le dernier post
Mais bon en gros ce qui me semble pas si mortel que ça serait la solution suivante (vous pouvez me corriger si je suis dans le champs) :
Prendre la bd et la séparer en 2:
-Post antérieur avec le "mauvais" encodage
-Nouveau post "post plantage" (dsl du jeu de mot)
-Créer une bd temporaire avec les vieux post et leur appliquer le bon encodage en SQL
-Recoller les 2 bd ensemble
Le seul problème immense que je vois c'est si il y a des liens par l'id du post avec d'autres tables ...
Dernière modification par aeacides (Le 10/03/2008, à 19:21)
http://www.q-be.ca
Hors ligne
#25 Le 11/03/2008, à 18:37
- MulX
Re : Encodage des caractères sur le forum
Franchement je vois pas de quel probleme vous parlez
Bon je viens de comprendre pourquoi j'ai eu droit a toute les erreurs d'apache et SQL, ça devait être l'applicatation des correctifs
En tout cas chapeau les admins
EDIT : Bon je retire ce que je viens de dire, je comprend plus là un post qui était mauvais avant est bon maitenant, mais pas tous
Nan serieux j'ai du mal a suivre là
Dernière modification par MulX (Le 11/03/2008, à 18:53)
Tchous, MulX. -- PlayOnLinux :) -- Gopherspace ! -- 6 * 9 = 42 (si si) -- Humph? -- Follow me!
Hors ligne