Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

gnus et article charset

7 réponses
Avatar
Benoit Izac
Bonjour,

J'ai un petit soucis avec gnus que je traîne depuis toujours. Parfois
lorsque je lis un message (généralement un mail), l'article n'est pas
correctement affiché : j'ai des \xxx à la place des caractères non
ASCII.

Je viens de m'apercevoir que lorsque je fais
M-x gnus-article-decode-charset
l'article s'affiche correctement.

Malheureusement, je n'arrive pas à trouver une solution pour que ce soit
fait automatiquement. J'ai trouvé sur google une variable
gnus-article-decode-charset mais elle ne semble pas exister sur ma
version (Gnus v5.13). J'ai essayé aussi de jouer avec
gnus-article-decode-hook sans succès.

Merci.
--
Benoit Izac

7 réponses

Avatar
Damien Wyart
J'ai un petit soucis avec gnus que je traîne depuis toujours. Parfois
lorsque je lis un message (généralement un mail), l'article n'est pas
correctement affiché : j'ai des xxx à la place des caractères non
ASCII.



Peux-tu fournir les en-têtes d'un tel mail qui pose problème ?

Je viens de m'apercevoir que lorsque je fais
M-x gnus-article-decode-charset
l'article s'affiche correctement.

Malheureusement, je n'arrive pas à trouver une solution pour que ce
soit fait automatiquement. J'ai trouvé sur google une variable
gnus-article-decode-charset mais elle ne semble pas exister sur ma
version (Gnus v5.13). J'ai essayé aussi de jouer avec
gnus-article-decode-hook sans succès.



Normalement gnus-article-decode-hook contient déjà
gnus-article-decode-charset. Donc soit ce hook n'est pas appelé, soit tu
as besoin de deux appels à la fonction pour un affichage correct.
Peut-être gnus-article-prepare-hook, mais je ne suis pas sûr que ça soit
bien adapté.

Ceci dit je trouve un peu inélégant d'essayer de faire ce traitement
pour tous les articles ; ça serait sans doute plus intéressant de
comprendre l'origine du problème sur les mails concernés. Peut-être un
nom de charset incorrect ou quelque chose dans ce genre. Dans mon
.gnus.el, j'ai ceci et cela pourrait peut-être aider :

(add-to-list 'mm-charset-synonym-alist '(iso8859-1 . iso-8859-1))
(add-to-list 'mm-charset-synonym-alist '(iso88591 . iso-8859-1))
(add-to-list 'mm-charset-synonym-alist '(iso8859-15 . iso-8859-15))
(add-to-list 'mm-charset-synonym-alist '(iso885915 . iso-8859-15))

--
DW
Avatar
Benoit Izac
Bonjour,

le 24/03/2010 à 14:36, Damien Wyart a écrit dans le message
<4baa1576$0$14928$ :

J'ai un petit soucis avec




gnus que je traîne depuis toujours. Parfois
lorsque je lis un message (généralement un mail), l'article n'est pas
correctement affiché : j'ai des xxx à la place des caractères non
ASCII.



Peux-tu fournir les en-têtes d'un tel mail qui pose problème ?

Je viens de m'apercevoir que lorsque je fais
M-x gnus-article-decode-charset
l'article s'affiche correctement.



Malheureusement, je n'arrive pas à trouver une solution pour que ce
soit fait automatiquement. J'ai trouvé sur google une variable
gnus-article-decode-charset mais elle ne semble pas exister sur ma
version (Gnus v5.13). J'ai essayé aussi de jouer avec
gnus-article-decode-hook sans succès.



Normalement gnus-article-decode-hook contient déjà
gnus-article-decode-charset. Donc soit ce hook n'est pas appelé, soit tu
as besoin de deux appels à la fonction pour un affichage correct.
Peut-être gnus-article-prepare-hook, mais je ne suis pas sûr que ça soit
bien adapté.

Ceci dit je trouve un peu inélégant d'essayer de faire ce traitement
pour tous les articles ; ça serait sans doute plus intéressant de
comprendre l'origine du problème sur les mails concernés. Peut-être un
nom de charset incorrect ou quelque chose dans ce genre. Dans mon
.gnus.el, j'ai ceci et cela pourrait peut-être aider :

(add-to-list 'mm-charset-synonym-alist '(iso8859-1 . iso-8859-1))
(add-to-list 'mm-charset-synonym-alist '(iso88591 . iso-8859-1))
(add-to-list 'mm-charset-synonym-alist '(iso8859-15 . iso-8859-15))
(add-to-list 'mm-charset-synonym-alist '(iso885915 . iso-8859-15))



J'ai déjà ça.

En fait en y regardant de plus près, le problème apparaît avec des mails
en HTML (multipart/mixed). J'utilise elinks pour afficher le HTML :

(add-to-list 'mm-text-html-renderer-alist
'(elinks mm-inline-render-with-stdin nil
"elinks" "-dump" "-dump-charset" "utf-8" "-force-html"))
(setq mm-text-html-renderer 'elinks)

Lorsque je change ma config d'elinks (document.codepage.assume="xxx"
avec un document.codepage.force_assumed=1), je vois bien des différences
mais impossible d'avoir un truc qui s'affiche proprement. J'ai essayé
aussi en suppriment le -dump-charset ou en modifiant sa valeur.

Je continue mes investigations...
--
Benoit Izac
Avatar
Damien Wyart
* Benoit Izac in fr.comp.applications.emacs:
En fait en y regardant de plus près, le problème apparaît avec des
mails en HTML (multipart/mixed).



D'accord, le problème est donc mieux cerné. C'est un thème que je ne
connais pas très bien.

J'utilise elinks pour afficher le HTML :

(add-to-list 'mm-text-html-renderer-alist
'(elinks mm-inline-render-with-stdin nil
"elinks" "-dump" "-dump-charset" "utf-8" "-force-html"))
(setq mm-text-html-renderer 'elinks)



Juste pour comparer et voir si ça vient d'elinks ou d'Emacs, peux-tu
installer emacs-w3m et utiliser ce réglage :

(setq mm-text-html-renderer 'w3m)

emacs-w3m est dédié à la conversion de html vers Emacs et Gnus, et
d'après mon expérience et ce que j'ai pu lire ici ou là, ça marche assez
bien. As-tu une raison particulière pour utiliser elinks pour la
conversion HTML ?

Sinon, il faudrait voir si on peut forcer le gnus-article-decode-charset
après appel au mm-text-html-renderer, mais je ne sais pas faire ;
peut-être le newsgroup Gnus anglophone ?

Si le problème est assez rare, l'automatisation de l'appel n'est
peut-être pas si cruciale ; le raccourci par défaut W M c permet
d'appeler gnus-article-decode-charset, c'est moins long que de saisir le
nom de fonction entier ; est-ce que ça pourrait te dépanner ?

--
DW
Avatar
Benoit Izac
Bonjour,

le 24/03/2010 à 15:16, Damien Wyart a écrit dans le message
<4baa1edb$0$16802$ :

J'utilise elinks pour afficher le HTML :



(add-to-list 'mm-text-html-renderer-alist
'(elinks mm-inline-render-with-stdin nil
"elinks" "-dump" "-dump-charset" "utf-8" "-force-html"))
(setq mm-text-html-renderer 'elinks)



Juste pour comparer et voir si ça vient d'elinks ou d'Emacs, peux-tu
installer emacs-w3m et utiliser ce réglage :

(setq mm-text-html-renderer 'w3m)



byte-code: Emacs-w3m of this version does not support Emacs 23; try the
development version

J'ai la flemme de l'installer, j'ai essayé avec ce que j'utilisais avant
elinks : (setq mm-text-html-renderer 'w3m-standalone). Ça marche sans
problème mais il faudrait que je teste sur un paquet de mail pour être
sûr du fonctionnement.

emacs-w3m est dédié à la conversion de html vers Emacs et Gnus, et
d'après mon expérience et ce que j'ai pu lire ici ou là, ça marche assez
bien. As-tu une raison particulière pour utiliser elinks pour la
conversion HTML ?



Oui, j'aime bien la manières dont c'est affiché, notamment les
« visibles links »
elinks -dump www.google.com pour tester.

Sinon, il faudrait voir si on peut forcer le gnus-article-decode-charset
après appel au mm-text-html-renderer, mais je ne sais pas faire ;
peut-être le newsgroup Gnus anglophone ?



Sans doute. Toujours est-il que lorsque je fais un
gnus-article-decode-charset je perds les liens en multipart, genre
fichier joint.

Si le problème est assez rare, l'automatisation de l'appel n'est
peut-être pas si cruciale ; le raccourci par défaut W M c permet
d'appeler gnus-article-decode-charset, c'est moins long que de saisir le
nom de fonction entier ; est-ce que ça pourrait te dépanner ?



Franchement, il est plus facile pour moi de me souvenir du nom de la
commande que de trois lettres qui ne représente rien. De plus avec la
complétion, je tape gnus- <tab> charset <tab> et je vois apparaître la
commande (bien pratique d'ailleurs de ne plus être obligé de connaître
tout le début pour compléter).

--
Benoit Izac
Avatar
Damien Wyart
* Benoit Izac in fr.comp.applications.emacs:
J'ai la flemme de l'installer, j'ai essayé avec ce que j'utilisais
avant elinks : (setq mm-text-html-renderer 'w3m-standalone). Ça marche
sans problème mais il faudrait que je teste sur un paquet de mail pour
être sûr du fonctionnement.



Ok, donc ça dépend bien du renderer...

Sans doute. Toujours est-il que lorsque je fais un
gnus-article-decode-charset je perds les liens en multipart, genre
fichier joint.



Peut-être une solution ici : http://article.gmane.org/gmane.emacs.gnus.user/11921

Franchement, il est plus facile pour moi de me souvenir du nom de la
commande que de trois lettres qui ne représente rien. De plus avec la
complétion, je tape gnus- <tab> charset <tab> et je vois apparaître la
commande (bien pratique d'ailleurs de ne plus être obligé de connaître
tout le début pour compléter).



Oui, ça se défend.

--
DW
Avatar
Benoit Izac
Bonjour,

le 24/03/2010 à 16:26, Damien Wyart a écrit dans le message
<4baa2f32$0$21526$ :

J'ai la flemme de l'installer, j'ai essayé avec ce que j'utilisais
avant elinks : (setq mm-text-html-renderer 'w3m-standalone). Ça marche
sans problème mais il faudrait que je teste sur un paquet de mail pour
être sûr du fonctionnement.



Ok, donc ça dépend bien du renderer...



Oui mais (voir plus bas)...

Sans doute. Toujours est-il que lorsque je fais un
gnus-article-decode-charset je perds les liens en multipart, genre
fichier joint.



Peut-être une solution ici :
http://article.gmane.org/gmane.emacs.gnus.user/11921



Je ne connaissais pas, c'est pratique mais ça ne résout pas le problème.
En revanche j'ai trouvé une solution qui marche pour le mail en
question, ça consiste à redéfinir mm-inline-render-with-stdin pour
remplacer mm-with-unibyte-buffer par mm-with-multibyte-buffer. Par
contre, ça ne marche pas pour tous les mails.

Une chose est sûr : Si je prends un mail en multipart, que je fais un
« K b » pour voir les différentes parties suivi d'un « K o » pour sauver
la partie en HTML et finalement dans un terminal un elinks -dump
file.html, le rendu est parfait. Donc je ne comprends pas pourquoi ça
bug ici (Il est vrai que je ne maîtrise pas suffisamment elisp pour
comprendre toutes les subtilités de mm-view).

--
Benoit Izac
Avatar
Benoit Izac
Dans le message <hodce8$rd4$, le 24/03/2010 à 16:51, j'ai
écrit :

Je ne connaissais pas, c'est pratique mais ça ne résout pas le problème.
En revanche j'ai trouvé une solution qui marche pour le mail en
question, ça consiste à redéfinir mm-inline-render-with-stdin pour
remplacer mm-with-unibyte-buffer par mm-with-multibyte-buffer. Par
contre, ça ne marche pas pour tous les mails.



Bon j'ai utilisé la manière forte ; j'ai piqué le code de w3m-standalone
et remplacé w3m par elinks, maintenant ça fonctionne correctement dans
pratiquement tous les cas.


--
Benoit Izac



Arf ! Ça m'a permis de voir que

(add-hook 'before-save-hook
'(lambda ()
(delete-trailing-whitespace)))

n'était pas forcément une bonne idée.

--
Benoit Izac