OVH Cloud OVH Cloud

Essai Agent Unicode Extension beta version 0.3.2020.700

80 réponses
Avatar
Otomatic
Pour essai de :
Agent Unicode Extension (AgtEx) beta version 0.3.2020.700

English
All human beings are born free and equal in dignity and rights. They are
endowed with reason and conscience and should act towards one another in
a spirit of brotherhood.

French
Les hommes naissent et demeurent libres et égaux en droits. Les
distinctions sociales ne peuvent être fondées que sur l'utilité
commune.

Georgian
ყველა ადამიანი იბადება
თავისუფალი და თანასწორი
თავისი ღირსებითა და
უფლებებით. მათ მინიჭებული
აქვთ გონება და სინდისი და
ერთმანეთის მიმართ უნდა
იქცეოდნენ ძმობის
სულისკვეთებით.

Greek (polytonic)
Ὅλοι οἱ ἄνθρωποι γεννιοῦνται
ἐλεύθεροι καὶ ἴσοι στὴν
ἀξιοπρέπεια καὶ τὰ δικαιώματα.
Εἶναι προικισμένοι μὲ λογικὴ καὶ
συνείδηση, καὶ ὀφείλουν νὰ
συμπεριφέρονται μεταξύ τους μὲ
πνεῦμα ἀδελφοσύνης.

--
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit
nouveau, même si c'est pire qu'avant et cela de toute évidence.
Henry de Montherlant - Va jouer avec cette poussière

10 réponses

1 2 3 4 5
Avatar
yamo'
Salut,
Olivier Miakinen a écrit :
Salut, j'ai encore deux critiques à faire...
Le 16/10/2020 17:04, yamo' a écrit en Subject (et j'ajoute une règle) :


...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8


1234567890123456789012345678901234567890123456789012345678901234567890123456789012
Subject: Re: Essai avec le mot


=?UTF-8?Q?« Nullième » Agent? >> =?UTF-8?Q? Unicode Extension beta version 0.3.202? >> =?UTF-8?Q?0.700?
La première critique concerne la longueur de la première ligne :
<cit. https://tools.ietf.org/html/rfc2047#section-2>
An 'encoded-word' may not be more than 75 characters long, including
'charset', 'encoding', 'encoded-text', and delimiters. If it is
desirable to encode more text than will fit in an 'encoded-word' of
75 characters, multiple 'encoded-word's (separated by CRLF SPACE) may
be used.
While there is no limit to the length of a multiple-line header
field, each line of a header field that contains one or more
'encoded-word's is limited to 76 characters.
</cit.>
Tu as bien respecté le maximum des 75 caractères pour chaque encoded-word,
en revanche la première ligne fait 82 caractères au lieu du maximum de 76.

J'ai fait un test (comparer Subject et X-Comment).
Subject n'est pas modifié.
X-Comment c'est une tentative avec iconv-mime-encode qui permet de
définir une longueur de ligne.
Je l'ai mis en X-comment car j'ai eu des misères avec cette fonction je
suis un peu étonné par le résultat :(
La seconde critique est un peu la suite de ce que je disais sur le choix
de l'encodage entre QP et Base64 : si ne pas encoder du tout est possible,
c'est forcément encore plus court (et plus lisible) que les deux autres
choix.
Donc :
Subject: Re: Essai avec le mot
=?UTF-8?Q?« Nullième » Agent? > Unicode Extension beta version 0.3.2020.700
Voire :
Subject: Re: Essai avec le mot =?UTF-8?Q?« Nullième »? > Agent Unicode Extension beta version 0.3.2020.700
(au fait, pourquoi avoir encodé les chiffres et les points en QP ?

Alors là ...
Je préfère me baser sur une fonction standard en php car je ne suis pas
sûr de faire mieux.
--
Stéphane
Prédire, c'est attendre, mais sans être sûr que "ça" viendra.
-+- Gilles Lane -+-
Avatar
yamo'
Salut,
Test avec Nemo pour voir...
--
Ce message a été posté avec Nemo : <http://news2.nemoweb.net/?DataID=
Avatar
yamo'
Olivier Miakinen a tapoté le 16/10/2020 21:56:
Salut, j'ai encore deux critiques à faire...
Le 16/10/2020 17:04, yamo' a écrit en Subject (et j'ajoute une règle) :
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
1234567890123456789012345678901234567890123456789012345678901234567890123456789012
Subject: Re: Essai avec le mot =?UTF-8?Q?« Nullième » Agent? >> =?UTF-8?Q? Unicode Extension beta version 0.3.202? >> =?UTF-8?Q?0.700? >

La première critique concerne la longueur de la première ligne :
<cit. https://tools.ietf.org/html/rfc2047#section-2>
An 'encoded-word' may not be more than 75 characters long, including
'charset', 'encoding', 'encoded-text', and delimiters. If it is
desirable to encode more text than will fit in an 'encoded-word' of
75 characters, multiple 'encoded-word's (separated by CRLF SPACE) may
be used.
While there is no limit to the length of a multiple-line header
field, each line of a header field that contains one or more
'encoded-word's is limited to 76 characters.
</cit.>
Tu as bien respecté le maximum des 75 caractères pour chaque encoded-word,
en revanche la première ligne fait 82 caractères au lieu du maximum de 76.
La seconde critique est un peu la suite de ce que je disais sur le choix
de l'encodage entre QP et Base64 : si ne pas encoder du tout est possible,
c'est forcément encore plus court (et plus lisible) que les deux autres
choix.
Donc :
Subject: Re: Essai avec le mot
=?UTF-8?Q?« Nullième » Agent? > Unicode Extension beta version 0.3.2020.700
Voire :
Subject: Re: Essai avec le mot =?UTF-8?Q?« Nullième »? > Agent Unicode Extension beta version 0.3.2020.700
(au fait, pourquoi avoir encodé les chiffres et les points en QP ?

--
Stéphane
Avatar
yamo'
Salut,
Olivier Miakinen a écrit :
Salut, j'ai encore deux critiques à faire...

C'est comme ça qu'on avance...
Le 16/10/2020 17:04, yamo' a écrit en Subject (et j'ajoute une règle) :

Je reprends ta règle si Newsportal ne coupe pas la ligne.
...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
1234567890123456789012345678901234567890123456789012345678901234567890123456789012
Mon Seamonkey (dernière version stable 2.53.4) :
Subject:
=?UTF-8?Q?Re:_Essai_avec_le_mot_«_Nullième_»_Agent_U? =?UTF-8?Q?nicode_Extension_beta_version_0.3.2020.700?
Nemo :
Subject: Re: Essai avec le mot
=?UTF-8?Q?« Nullième » Agent?=
=?UTF-8?Q? Unicode Extension beta version 0.3.202?=
=?UTF-8?Q?0.700?
Newsportal après lecture du code de nemo
<https://github.com/Julien-Arlandis/phpNemoServer/blob/master/Applications/NemoNetwork/lib/class.nntp.php>
Il m'a inspiré le mb_internal_encoding() et surtout l'espace avec le rn
(je ne vois pas pourquoi il est là!
Subject: Re: Essai avec le mot
=?UTF-8?Q?« Nullième » Agent?=
=?UTF-8?Q? Unicode Extension beta version 0.3.202?=
=?UTF-8?Q?0? X-comment: =?UTF-8?Q?Re: Essai avec l?==?UTF-8?Q?e mot? =?UTF-8?Q? « Nullième ?==?UTF-8?Q?Â? =?UTF-8?Q?» Agent Unicode Ex?==?UTF-8?Q?tensio? =?UTF-8?Q?n beta version 0.3.?==?UTF-8?Q?2020?
La première critique concerne la longueur de la première ligne :
<cit. https://tools.ietf.org/html/rfc2047#section-2>
An 'encoded-word' may not be more than 75 characters long, including
'charset', 'encoding', 'encoded-text', and delimiters. If it is
desirable to encode more text than will fit in an 'encoded-word' of
75 characters, multiple 'encoded-word's (separated by CRLF SPACE) may
be used.
While there is no limit to the length of a multiple-line header
field, each line of a header field that contains one or more
'encoded-word's is limited to 76 characters.
</cit.>
Tu as bien respecté le maximum des 75 caractères pour chaque encoded-word,
en revanche la première ligne fait 82 caractères au lieu du maximum de 76.
La seconde critique est un peu la suite de ce que je disais sur le choix
de l'encodage entre QP et Base64 : si ne pas encoder du tout est possible,
c'est forcément encore plus court (et plus lisible) que les deux autres
choix.
Donc :
Subject: Re: Essai avec le mot
=?UTF-8?Q?« Nullième » Agent? > Unicode Extension beta version 0.3.2020.700
Voire :
Subject: Re: Essai avec le mot =?UTF-8?Q?« Nullième »? > Agent Unicode Extension beta version 0.3.2020.700
(au fait, pourquoi avoir encodé les chiffres et les points en QP ?

Si je le savais ...
Comme ça a bien progressé, je pense qu'il faut que j'avance dans la
lecture du code de la version newsportal de Julien qu'il m'a envoyé. Là
j'avançais en méthode essai erreur...
Bon week-end ou bonnes vacances,
--
Stéphane
Le génie est fait d'un dixième d'inspiration... et de neuf dixième de
transpiration.
-+- Thomas Edison (1847-1931) -+-
Avatar
yamo'
Dernier test pour le sujet...
Avatar
Olivier Miakinen
Le 17/10/2020 10:06, yamo' a écrit :
Je préfère me baser sur une fonction standard en php car je ne suis pas
sûr de faire mieux.

Est-ce que ça servirait à quelque chose que je code moi-même une fonction
en PHP pour faire ça ? Je n'en ai plus fait depuis PHP 4 mais je peux m'y
remettre.
--
Olivier Miakinen
Avatar
yamo'
Olivier Miakinen a écrit :
Le 17/10/2020 10:06, yamo' a écrit :
Je préfère me baser sur une fonction standard en php car je ne suis pas
sûr de faire mieux.

Est-ce que ça servirait à quelque chose que je code moi-même une fonction
en PHP pour faire ça ? Je n'en ai plus fait depuis PHP 4 mais je peux m'y
remettre.

C'est comme tu veux. Ce serait avec plaisir que je l'incorporerais.
Le code est sur git et l'installation est simplissime.
Il y a juste groups.txt et config.inc.php à éditer (de mémoire, je suis
sur un smartphone). Créer le répertoire spool et changer les droits pour
que le user utilisé par le serveur http puisse écrire et créer des
fichiers dans spool.
https://gitlab.com/yamo-nntp/newsportal
La cible c'est php7. Tu peux forker comme on dit en GIT!
Je peux tester sur l'instance que j'utilise ou une autre.
Bonne soirée
Avatar
Olivier Miakinen
[copie et suivi vers fr.comp.lang.php]
Bonjour,
Le 17/10/2020 22:14, yamo' me répondait :
Est-ce que ça servirait à quelque chose que je code moi-même une fonction
en PHP pour [coder les entêtes en MIME) ? Je n'en ai plus fait depuis PHP 4
mais je peux m'y remettre.

C'est comme tu veux. Ce serait avec plaisir que je l'incorporerais.
Le code est sur git et l'installation est simplissime.
Il y a juste groups.txt et config.inc.php à éditer (de mémoire, je suis
sur un smartphone). Créer le répertoire spool et changer les droits pour
que le user utilisé par le serveur http puisse écrire et créer des
fichiers dans spool.
https://gitlab.com/yamo-nntp/newsportal

Je pense avoir trouvé où ça se trouve : dans lib/post.inc.php :
========================================================================= function message_post($subject,$from,$newsgroups,$ref,$body) {
global $server,$port,$send_poster_host,$organization,$text_error;
global $file_footer,$www_charset,$spooldir;
global $msgid_generate,$msgid_fqdn;
flush();
$ns=nntp_open($server,$port);
if ($ns != false) {
fputs($ns,"POSTrn");
$weg=line_read($ns);
$subject = str_replace("n","",$subject);
$subject = str_replace("r","",$subject);
$subject = str_replace("t"," ",$subject);
$subject = utf8_encode($subject);
fputs($ns,"User-Agent: " . mb_encode_mimeheader("NewsPortal/0.50.1b") .
"rn");
fputs($ns,'From: '. $from ."rn"); //$from est déjà encodé dans post.php
fputs($ns,'Newsgroups: '.$newsgroups."rn");
fputs($ns,"Mime-Version: 1.0rn");
fputs($ns,"Content-Type: text/plain; charset=".$www_charset.";
format=flowedrn");
fputs($ns,"Content-Transfer-Encoding: 8bitrn");
$subject= iconv ( "UTF-8", "ISO-8859-15" ,$subject );
$subject_mime=mb_encode_mimeheader( $subject,"UTF-8", "Q");
fputs($ns,'Subject: '. $subject_mime . "rn");
=========================================================================
Tout d'abord, je suis particulièrement surpris par :
========================================================================= $subject= iconv ( "UTF-8", "ISO-8859-15" ,$subject );
$subject_mime=mb_encode_mimeheader( $subject,"UTF-8", "Q");
=========================================================================
Mais en fait aussi par ça qui précède :
========================================================================= $subject = utf8_encode($subject);
=========================================================================
Si je comprends bien ce code, le paramètre $subject est supposé être
en ISO-8859-1, traduit en UTF-8 par utf8_encode(), puis traduit d'UTF-8
en ISO-8859-15 par iconv(), et enfin retraduit en UTF-8 depuis l'encodage
de mb_internal_encoding() que je suppose être ISO-8859-15.
Le résultat de tous ces transcodages, c'est que seuls les caractères qui
appartiennent à la fois à ISO-8859-1 et à ISO-8859-15 ont une chance d'en
ressortir indemne... donc par exemple pas € (dans ISO-8859-15 uniquement)
ni ½ (dans ISO-8859-1 uniquement) et encore moins √ (dans aucune des deux).
--
Olivier Miakinen
Avatar
yamo'
Salut,
Olivier Miakinen a écrit :
[copie et suivi vers fr.comp.lang.php]

[.........]
Le résultat de tous ces transcodages, c'est que seuls les caractères qui
appartiennent à la fois à ISO-8859-1 et à ISO-8859-15 ont une chance d'en
ressortir indemne... donc par exemple pas € (dans ISO-8859-15 uniquement)
ni ½ (dans ISO-8859-1 uniquement) et encore moins √ (dans aucune des

deux).
Merci, tu as mis le doigt sur ce qui n'allait pas et que je ne voyais plus
à force de modifier le code un peu à l'aveuglette!
Grâce à toi, j'ai nettoyé le code et je suis arrivé à quelque chose
de plus logique :
<URL:https://gitlab.com/yamo-nntp/newsportal/-/blob/master/lib/post.inc.php>
Mais je suis bien conscient que c'est encore très perfectible... Mais au
moins c'est d'après mes tests fonctionnel...
--
Stéphane
Avatar
yamo'
1 2 3 4 5