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

Avatar
Olivier Miakinen
Le 17/10/2020 22:54, j'écrivais :
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 fait.
Il y a un fichier mime.inc.php à inclure. Ce fichier fait 550 lignes dont
un bon tiers de commentaires explicatifs au début − sans compter les autres
commentaires parsemés un peu partout dans le code.
Note que je n'utilise aucune fonction de gestion des charsets, ni rien pour
encoder en QP ou en Base64, tout est fait à la mimine. Les fonctions externes
que j'utilise sont :
- pour les chaînes de caractères : strlen(), substr(), sprintf() et ord() ;
- pour les regexp : preg_match() et preg_split() ;
- pour les tableaux : count() ;
et je crois bien que c'est tout.
En outre je ne pollue pas l'espace de noms car je n'ai rien défini d'autre
que deus classes : HeaderTools et MimeEncodeHeader. Tout est fait dedans.
Mais je ne suis pas encore au point pour utiliser Git, alors pour le moment
j'ai mis le fichier mime.inc.php sur cjoint :
<https://www.cjoint.com/c/JJttn5IYkLA>
Attention, je pense qu'ouvrir le fichier directement ne fonctionne pas, en
tout cas ça n'a pas marché pour moi. Mais le télécharger sur le disque pour
l'ouvrir ensuite, ça marche bien.
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 19/10/2020 16:20, yamo' a écrit :
Il y avait aussi les posts de Dom Féranpière©® et les réponses avant
qu'il ne corrige son lecteur de news...

Une solution radicale consisterait à éliminer purement et simplement
tout caractère non ASCII dans les entêtes à la réception :
$headers = iconv("US-ASCII", "US-ASCII//IGNORE", $headers);
C'est avec ce genre de solution que certains voyaient son pseudo sous
la forme « Dom Franpire » au lieu que cela fasse tout buguer.
Une solution un peu moins radicale serait :
$headers = iconv("ISO-8859-1", "US-ASCII//TRANSLIT", $headers);
Cela donnerait :
"Dom Feranpiere(C)(R)" si c'était vraiment du Latin1
"Dom FA(C)ranpiA?reA(C)A(R)" si c'était de l'UTF-8
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 20/10/2020 00:33, j'écrivais :
Une solution un peu moins radicale serait :
$headers = iconv("ISO-8859-1", "US-ASCII//TRANSLIT", $headers);
Cela donnerait :
"Dom Feranpiere(C)(R)" si c'était vraiment du Latin1
"Dom FA(C)ranpiA?reA(C)A(R)" si c'était de l'UTF-8

J'ai trouvé la solution idéale !
iconv("UTF-8", "US-ASCII//TRANSLIT//IGNORE", "Dom Féranpière©®" en UTF-8)
==> Dom Feranpiere(C)(R)
iconv("UTF-8", "US-ASCII//TRANSLIT//IGNORE", "Dom Féranpière©®" en Latin1)
==> Dom Franpire
Yapluka.
--
Olivier Miakinen
Avatar
yamo'
Salut,
Copie et suivi vers fr.comp.usenet.serveurs.
Le contexte : discussion autour de la refonte du code de Newsportal
rendue possible par le portage du code en php7 par Sudarshan S Chawathe.
Le code : <URL:https://gitlab.com/yamo-nntp/newsportal>
Gérald Niel a tapoté le 19/10/2020 19:05:
Ce n'est pas ce que j'ai suggéré, et ça n'est pas une bonne idée.
NewsPortal est un client NNTP.

Désolé pour l'incompréhension.
Il est fort possible qu'à l'époque de l'écriture de NewsPortal les
fonctions IMAP de PHP n'existaient pas.

J'ai déjà fait ça pour une mailing list en java mais pourra t'on le
faire avant que le post ne soit diffusé?
Est-ce qu'il y a une commande alternative à post?
https://www.php.net/manual/fr/ref.imap.php

Dans mon souvenir, les modifications sur les entêtes ajoutent des
entêtes received.
Hors ces fonctions permettent de se connecter à un serveur nntp en
mode client.
À explorer…

Probablement mais je ne vois pas trop comment (mais, je n'ai pas encore
regardé).
Il me semble que le plus simple serait d'adapter ce type de code en perl
pour éditer les entêtes en s'assurant qu'on ne traite que les entêtes
venant d'un newsportal bien identifié et pas tout le feed :
<https://www.eyrie.org/~eagle/faqs/inn.html#S6.11>
On doit pouvoir faire quelque chose du genre :
add $hdr (...?)
Il y a aussi la piste des codes d'édition des entêtes d'albasani et aioe :
<https://web.archive.org/web/20200218102944/http://albasani.net/technical/x-trace.html.en>
--
Stéphane
Avatar
yamo'
Salut,
Olivier Miakinen a tapoté le 19/10/2020 21:29:
Le 17/10/2020 22:54, j'écrivais :
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 fait.
Il y a un fichier mime.inc.php à inclure. Ce fichier fait 550 lignes dont
un bon tiers de commentaires explicatifs au début − sans compter les autres
commentaires parsemés un peu partout dans le code.

Tant mieux, je déteste le code magique.
Note que je n'utilise aucune fonction de gestion des charsets, ni rien pour
encoder en QP ou en Base64, tout est fait à la mimine. Les fonctions externes
que j'utilise sont :
- pour les chaînes de caractères : strlen(), substr(), sprintf() et ord() ;
- pour les regexp : preg_match() et preg_split() ;
- pour les tableaux : count() ;
et je crois bien que c'est tout.
En outre je ne pollue pas l'espace de noms car je n'ai rien défini d'autre
que deus classes : HeaderTools et MimeEncodeHeader. Tout est fait dedans.
Mais je ne suis pas encore au point pour utiliser Git, alors pour le moment
j'ai mis le fichier mime.inc.php sur cjoint :

C'est assez simple d'ouvrir un compte sur gitlab (mon compte de github a
été utilisé pour ça).
Et tu peux faire les manipulations en web ou en vraies commandes git. Le
simple fait de vouloir éditer le code de mon dépôt va te proposer de
faire un fork où tu pourras éditer le code dans ton coin.
Pour mes erreurs pour mettre à jour mes dépôts locaux, c'est par ce que
je m'y prends comme un newbie...
Mes dépôts locaux doivent être mal initialisés.
De mémoire, il faudrait que j'utilise des trucs du genre git init bare
et une autre commande que j'ai oublié ...
<https://www.cjoint.com/c/JJttn5IYkLA>
Attention, je pense qu'ouvrir le fichier directement ne fonctionne pas, en
tout cas ça n'a pas marché pour moi. Mais le télécharger sur le disque pour
l'ouvrir ensuite, ça marche bien.

Pas de soucis, ça a fonctionné.
Je vais mettre un peu de temps à lire ton code et les commentaires.
Quel boulot!
--
Stéphane
Avatar
yamo'
Salut,
Olivier Miakinen a tapoté le 20/10/2020 00:56:
Le 20/10/2020 00:33, j'écrivais :
Une solution un peu moins radicale serait :
$headers = iconv("ISO-8859-1", "US-ASCII//TRANSLIT", $headers);
Cela donnerait :
"Dom Feranpiere(C)(R)" si c'était vraiment du Latin1
"Dom FA(C)ranpiA?reA(C)A(R)" si c'était de l'UTF-8

J'ai trouvé la solution idéale !
iconv("UTF-8", "US-ASCII//TRANSLIT//IGNORE", "Dom Féranpière©®" en UTF-8)
==> Dom Feranpiere(C)(R)
iconv("UTF-8", "US-ASCII//TRANSLIT//IGNORE", "Dom Féranpière©®" en Latin1)
==> Dom Franpire
Yapluka.

C'est en plus de ton code?
--
Stéphane
Avatar
yamo'
Le Fri, 16 Oct 2020 15:04:21 +0000, yamo' a écrit :
Deuxième test

test subject.
--
Stéphane <http://pasdenom.info/fortune/>
L'amour est à la portée de tous, mais l'amitié est l'épreuve du coeur.
-+- Alfred D'Houdetot (1799-1860) -+-
Avatar
yamo'
yamo' a écrit :
Le Fri, 16 Oct 2020 15:04:21 +0000, yamo' a écrit :
Deuxième test

test subject.

pas mieux.
Avatar
yamo'
yamo' a écrit :
yamo' a écrit :
Le Fri, 16 Oct 2020 15:04:21 +0000, yamo' a écrit :
Deuxième test

test subject.

pas mieux.

Note pour Olivier.
Je n'ai pas encore adapté le code...
Avatar
yamo'
Premier test :
Example 3:
fwrite($out, new MimeEncodeHeader("Subject", $subject) . "rn");
Pour comparer, j'ai laissé l'ancien encodage dans X-Subject.