OVH Cloud OVH Cloud

encodage du pseudo

18 réponses
Avatar
Edelweiss ;-)
Oui, c'est bien moi Fantomas ;-)

Normalement le pseudo devrait être: "Edelweiss ;-)"
--
Gilbert
<https://maccafe-osx.pagesperso-orange.fr>

8 réponses

1 2
Avatar
Gilbert OLIVIER
le 6 juin 2021, Olivier Miakinen a attiré mon attention sur :
Le 06/06/2021 20:20, j'écrivais :
From: Edelweiss ";-)"

C'est correct, mais tu ne devrais pas t'embêter Í  traiter chaque mot
individuellement. Ceci est plus simple et tout aussi correct :
From: "Edelweiss ;-)"

En vrai tu fais comme tu veux.
J'ai réalisé après avoir écrit ce « conseil », en voyant des champs
From dont une partie nécessite un encodage MIME, qu'il est peut-être
en effet plus simple de traiter séparément « Edelweiss » et « ;-) ».
Et donc c'est toi qui vois. Les deux sont corrects et ce n'est pas Í 
moi de décider Í  ta place lequel des deux sera le plus simple Í  coder.

Je suis parti du principe que je risquais de rencontrer les deux en
décodage (venant d'un autre "nouvelleur") donc pour pouvoir tester, je
suis parti sur ce format, en testant en interne toute la chaine de
plusieurs mots encadrée.
Hormis une ou deux paires de caractères en plus Í  transmettre cÍ´té
codage ce n'est pas forcément plus difficile ;-)
--
Gilbert
<https://maccafe-osx.pagesperso-orange.fr>
Avatar
Olivier Miakinen
Le 07/06/2021 Í  08:48, Gilbert OLIVIER a écrit :
le 6 juin 2021, Olivier Miakinen a attiré mon attention sur :
En résumé, le seul From incorrect dans toute cette enfilade est celui
o͹ il y un quoted-pair dans un atom, c'est-͠-dire qui ne soit ni dans
un quoted-string ni dans un commentaire.
Résumé du résumé :
"Edelweiss" est OK
(Single Backslash: ) est OK
Edelweiss ne l'est pas

Ok merci, Í  toi et aux autres.
J'avais juste mal compris, je pensai qu'il suffisait d'échapper les
caractères """ et "".

En fait la logique est la suivante.
1) Certains caractères peuvent être mis directement sans aucune
protection. Cela inclut toutes les lettres A-Z et a-z, tous les
chiffres 0-9, et un certain nombre d'autres caractères ASCII.
Leur liste exhaustive se trouve ici :
<https://datatracker.ietf.org/doc/html/rfc2822#section-3.2.4>
§
atext = ALPHA / DIGIT / ; Any character except controls,
"!" / "#" / ; SP, and specials.
"$" / "%" / ; Used for atoms
"&" / "'" /
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
§
Cela n'inclut bien sÍ»r pas les caractères non-ASCII (encodage MIME
obligatoire) mais pas non plus le guillemet (") ni le backslash ().
Noter que le point (.) n'en fait pas partie non plus.
2) Hors encodage MIME, les caractères interdits dans un atom doivent
être mis entre guillemets dans un quoted-string "...".
3) Mais du coup le caractère guillemet doit être protégé pour qu'il
ne termine pas trop tÍ´t le quoted-string, on le protège avec un
backslash "..."..."
4) Mais du coup le caractère backslash devient lui-même spécial dans
un quoted-string, et il doit Í  son tour être protégé par un autre
backslash "......"
Donc, si maintenant j'ai bien compris:
"Edelweiss concurent" pourrait s'encoder:

Je suppose que tu veux dire « Edelweiss concurent » et pas
« "Edelweiss concurent" ».
""Edelweiss" concurent" ou ""Edelweiss concurent""

LÍ  je suppose que tu veux dire respectivement
« "Edelweiss" concurent »
et
« "Edelweiss concurent" »
Je suis d'accord pour la deuxième forme, mais pas pour la première car
il faut aussi mettre « » entre guillemets :
« "Edelweiss" "" concurent »
Avatar
Olivier Miakinen
Le 07/06/2021 Í  08:48, Gilbert OLIVIER a écrit :
[mettre entre guillemets la chaine globale ou bien chaque mot
individuellement]

En vrai tu fais comme tu veux.
[...] Les deux sont corrects et ce n'est pas Í 
moi de décider Í  ta place lequel des deux sera le plus simple Í  coder.

Je suis parti du principe que je risquais de rencontrer les deux en
décodage (venant d'un autre "nouvelleur") donc pour pouvoir tester, je
suis parti sur ce format, en testant en interne toute la chaine de
plusieurs mots encadrée.
Hormis une ou deux paires de caractères en plus Í  transmettre cÍ´té
codage ce n'est pas forcément plus difficile ;-)

Oui, tu as raison. Ça pourrait même être généralement plus facile.
Avatar
Olivier Miakinen
Le 07/06/2021 Í  10:35, j'écrivais :
En fait la logique est la suivante.
1) Certains caractères peuvent être mis directement sans aucune
protection. Cela inclut toutes les lettres A-Z et a-z, tous les
chiffres 0-9, et un certain nombre d'autres caractères ASCII.
Leur liste exhaustive se trouve ici :
<https://datatracker.ietf.org/doc/html/rfc2822#section-3.2.4>
§
atext = ALPHA / DIGIT / ; Any character except controls,
"!" / "#" / ; SP, and specials.
"$" / "%" / ; Used for atoms
"&" / "'" /
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
§
Cela n'inclut bien sÍ»r pas les caractères non-ASCII (encodage MIME
obligatoire) mais pas non plus le guillemet (") ni le backslash ().
Noter que le point (.) n'en fait pas partie non plus.
2) Hors encodage MIME, les caractères interdits dans un atom doivent
être mis entre guillemets dans un quoted-string "...".
3) Mais du coup le caractère guillemet doit être protégé pour qu'il
ne termine pas trop tÍ´t le quoted-string, on le protège avec un
backslash "..."..."
4) Mais du coup le caractère backslash devient lui-même spécial dans
un quoted-string, et il doit Í  son tour être protégé par un autre
backslash "......"

Et un algorithme d'encodage pourrait ressembler Í  ça :
- séparer la chaÍ®ne en mots aux espaces et tabulations.
- pour chaque mot :
- s'il y a au moins un caractère non-ASCII, encoder en MIME ;
- sinon, s'il n'y a que des caractères autorisés pour un atom,
écrire le mot tel quel sans protection ;
- sinon, ajouter un guillemet au début et Í  la fin *et* faire
précéder chaque guillemet et chaque backslash du mot par un
backslash.
Ne pas oublier, s'il y a deux mots encodés en MIME d'affilée, d'encoder
aussi l'espace qui les sépare.
Avatar
yamo'
Edelweiss ";-) a écrit :
Oui, c'est bien moi Fantomas ;-)
Normalement le pseudo devrait être: "Edelweiss ;-)"

Presque...
--
Stéphane
Avatar
yamo'
yamo' a écrit :
Edelweiss ";-) a écrit :
Oui, c'est bien moi Fantomas ;-)

Normalement le pseudo devrait être: "Edelweiss ;-)"

Presque...

http://news2web.pasdenom.info/article.php?id2018&group=fr.test#32018
Avatar
Gilbert OLIVIER
le 8 juin 2021, yamo' a attiré mon attention sur :
Edelweiss ";-) a écrit :
Oui, c'est bien moi Fantomas ;-)

Normalement le pseudo devrait être: "Edelweiss ;-)"

Presque...

Pourtant celui lÍ , il me semble qu'il est correct. Les autres applis
semblent le décoder normalement.
--
Gilbert
<https://maccafe-osx.pagesperso-orange.fr>
Avatar
yamo'
Salut,
Gilbert OLIVIER a tapoté le 08/06/2021 16:15:
le 8 juin 2021, yamo' a attiré mon attention sur :
Edelweiss ";-) a écrit :
Oui, c'est bien moi Fantomas ;-)

Normalement le pseudo devrait être: "Edelweiss ;-)"

Presque...

Pourtant celui lÍ , il me semble qu'il est correct. Les autres applis
semblent le décoder normalement.

Je soupçonne un reste de vieux code dans NewsPortal (il utilisait des
from Í  la MacSoup...) .
--
Stéphane
1 2