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

[GNUS] accents dans les en-têtes et fr.* (long)

3 réponses
Avatar
Paul Gaborit
Avec certains serveurs de news (un leafnode récent par exemple) et si
on utilise gnus (5.10.7 et peut-être avant), il est impossible de
poster des articles contenant des en-têtes avec accents dans la
hiérarchie fr.* (ou no.*) !

Les raisons :

- Le serveur de news (leafnode par exemple) est respectueux de la RFC
2047 qui exige du 7bits dans les en-têtes et un encodage pour les
autres caractères...

- La hiérarchie fr.* (ainsi que no.*) a décidé (il y a longtemps)
d'accepter l'iso-8859-1 dans les messages *mais* aussi dans les
en-têtes (c'est une connerie mais petite car, à l'époque, la RFC 2047
n'existait pas encore ou n'était pas encore bien intégrée dans les
softs).

- Le module 'gnus' a pris cette décision d'acceptation comme une règle
absolue (c'est une plus grosse connerie à mon sens) et ce de là qui
vient le bug (gnus traite les messages pour fr.* et no.* de manière
spéciale en ne recodant pas les en-têtes).

Résultat : refus du serveur de news lors d'une tentative d'envoi d'un
message avec des accents dans les en-têtes !

Les mauvaises solutions :

- Dire au serveur d'accepter ce genre d'en-têtes. Si ce règlage
peut-être fait pour un sous-ensemble précis de newsgroups (fr.* et
no.*), pourquoi pas... Mais si, comme dans leafnode, c'est un réglage
global pour tous les newsgroups, ce n'est donc pas bon.

- Ne pas poster d'en-têtes avec accents (ou les supprimer quand on
répond). Ça marche pour les utilisateurs de gnus mais certains softs
de News se basent encore uniquement sur le sujet pour gérer les
enfilades. On casse donc ces softs... et les enfilades
correspondantes.

La bonne solution (à mon sens) est de customiser 'gnus' pour qu'il
encode les en-têtes dans la hiérarchie fr.* (les softs récents gèrent
très bien cela). Il faut modifier l'un des triplets contenu dans la
'custom variable' gnus-group-posting-charset-alist. Ce triplet fautif
(à mon sens) est :

'(("^\\(no\\|fr\\)\\.[^,]*\\(,[ \t\n]*\\(no\\|fr\\)\\.[^,]*\\)*$"
iso-8859-1 (iso-8859-1))

Il faut utiliser cette valeur à la place :

'(("^\\(no\\|fr\\)\\.[^,]*\\(,[ \t\n]*\\(no\\|fr\\)\\.[^,]*\\)*$"
nil (iso-8859-1))

(en fait, j'ai juste changé le 'iso-8859-1' de HEADER en nil.)

On peut le faire via 'customize'...

Ainsi, les accents dans les en-têtes sont encodés par gnus selon la
RFC-2047 même dans la hiérarchie fr.*. De nos jours, tous les softs de
News doivent (ou devraient) les décoder correctement ce qui ne posent
donc plus de problèmes...

PS: le problème doit être le même pour les hiérarchies fido et relcom
qui adoptent le codage 'koi8-r' mais j'y poste beaucoup moisn
d'articles... ;-)

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

3 réponses

Avatar
Sébastien Kirche
Le 26 January 2006 à 17:32, Paul Gaborit s'est exprimé ainsi :

Avec certains serveurs de news (un leafnode récent par exemple) et si
on utilise gnus (5.10.7 et peut-être avant), il est impossible de
poster des articles contenant des en-têtes avec accents dans la
hiérarchie fr.* (ou no.*) !
[...]



Pour ce que j'en ai vu ici et là sur les groupes que je lis, le problème
ne serait pas dû à un bug avec le couple XEmacs/gnus 5.10.7 plutôt ?

Un problème de non annonce ou de non décodage de l'iso-8859-15 annoncé
dans les entêtes:...

Parce que si je regarde ma variable, elle est encore à la valeur par
défaut, soit :
,----
| gnus-group-posting-charset-alist is a variable defined in `gnus-msg.el'.
| Its value is
| (("^(no|fr).[^,]*(,[ n]*(no|fr).[^,]*)*$" iso-8859-1
| (iso-8859-1))
| ("^(fido7|relcom).[^,]*(,[ n]*(fido7|relcom).[^,]*)*$" koi8-r
| (koi8-r))
| (message-this-is-mail nil nil)
| (message-this-is-news nil t))
`----
Cependant, si on regarde mes entêtes comme le From, les accents sont
annoncés et échappés (C-u g pour voir relire la version brute du
message) mais ils ne contiennent rien d'autre que du 7bit.

--
Sébastien Kirche
Avatar
Paul Gaborit
À (at) Thu, 26 Jan 2006 22:40:37 +0100,
Sébastien Kirche écrivait (w rote):
Pour ce que j'en ai vu ici et là sur les groupes que je lis, le probl ème
ne serait pas dû à un bug avec le couple XEmacs/gnus 5.10.7 plutôt ?

Un problème de non annonce ou de non décodage de l'iso-8859-15 annonc é
dans les entêtes:...

Parce que si je regarde ma variable, elle est encore à la valeur par
défaut, soit :
,----
| gnus-group-posting-charset-alist is a variable defined in `gnus-msg.el'.
| Its value is
| (("^(no|fr).[^,]*(,[ n]*(no|fr).[^,]*)*$" iso-885 9-1
| (iso-8859-1))
| ("^(fido7|relcom).[^,]*(,[ n]*(fido7|relcom).[^,]* )*$" koi8-r
| (koi8-r))
| (message-this-is-mail nil nil)
| (message-this-is-news nil t))
`----
Cependant, si on regarde mes entêtes comme le From, les accents sont
annoncés et échappés (C-u g pour voir relire la version brute du
message) mais ils ne contiennent rien d'autre que du 7bit.



La doc de gnus-group-posting-charset-alist me semble claire :

Alist of regexps and permitted unencoded charsets for posting.
Each element of the alist has the form (TEST HEADER BODY-LIST),
where TEST is either a regular expression matching the newsgroup
header or a variable to query, HEADER is the charset which may be
left unencoded in the header (nil means encode all charsets),
[...]

Avec HEADER qui vaut iso-8859-1 pour la hiérarchie fr.*, les en-têtes
sont laissés 'unencoded' s'ils sont en iso-8859-1... Ce que refuse
'leafnode'.

Mais comme vous semblez utiliser le charset iso-8859-15 et non
iso-8859-1, gnus doit effectivement recoder les en-têtes...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Avatar
Sébastien Kirche
Le 27 janvier 2006 à 13:01, Paul Gaborit a formulé :

Mais comme vous semblez utiliser le charset iso-8859-15 et non
iso-8859-1, gnus doit effectivement recoder les en-têtes...



C'est effectivement possible.

J'oubliais que les accents en latin-9 ne sont pas les mêmes que ceux en
latin-1 pour Emacs.

--
Sébastien Kirche