From patrice.karatchentzeff at gmail.com Thu May 2 08:57:56 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Thu, 2 May 2024 08:57:56 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: Message-ID: Merci à tous pour votre aide. Une grosse partie de mes difficultés, outre que je n'avais pas bien compris que le xpath était un truc à part, est que j'ai piqué un bout de programme là https://en.perlzemi.com/blog/20211119124656.html pour démarrer et que j'ai oublié que le gars avait figé la recherche en div : $driver->default_finder('css'); et du coup, je pouvais toujours faire des tests avec le xpath :( Pour l'utf-8, j'ai eu des tas de soucis... D'après ce que j'ai compris, le module Selenium met un peu le bronx (je suppose que cela vient du fait de devoir gérer des tas de navigateurs sur des tas d'environnements). Du coup, j'ai viré le pragma use utf8 et je gère avec encode/decode_utf8 les chaînes que j'envoie/reçois du navigateur... Moyennant cela, tout fonctionne nickel. Mais bon, j'ai un peu l'impression de coder comme il y a 25 ans :) Bon, pour l'apprentissage du xpath, je déconseille de commencer par la page de recherche de Google :) Pas réussi à faire fonctionner la recherche du xpath avec $x sous Chromium, mais cela marche nickel avec Firefox. Comme toujours, chaque outil à ses trucs plus ou moins bien par défaut et la recherche du xpath sous Chromium est assez pourrie et bien élaborée sous FF... alors que la page d'inspection est plutôt meilleure dans le sens contraire. PK Le jeu. 25 avr. 2024 à 13:56, Patrice Karatchentzeff a écrit : > > Merci pour la réponse : je commence à piger. En fait, je n'avais pas > compris qu'il y avait une syntaxe spécifique externe à Perl et je ne > comprenais pas la logique... > > J'ai trouvé cela qui décortique : > > https://www.freeformatter.com/xpath-tester.html > > Je vais tester tout cela. Merci beaucoup. > > PK > > Le jeu. 25 avr. 2024 à 03:03, Alex Garel a écrit : > > > > > > Le 24/04/2024 à 09:24, Patrice Karatchentzeff a écrit : > > > > ... > > Par exemple, tiré d'une page de recherche Google (qui fait tout pour > > rendre son code source imparsable) > > > > > > > > Je veux sélection h3 aria-hidden="true" pour pouvoir ensuite récupérer > > l'enfant span « Plus de résultats ». > > > > Je sais sélectionner tous les h3, pas ceux avec cette propriété > > seulement. J'ai essayé > > > > $driver->find_elements("//h3[aria-hiden='true']") > > > > Vu que la doc dit que find_elements prend du XPath par défaut. https://metacpan.org/pod/Selenium::Remote::Driver#find_elements > > > > Je suppose que c'est du XPath que tu veux faire, mais dans ce cas il faut un @ devant le nom de ta propriété, et il faut deux "d" à hidden > > > > $driver->find_elements('//h3[@aria-hidden="true"]') > > > > J'ai mis des '' en extérieur de l'expression pour éviter à avoir à banaliser le @ > > > > Tu peux tester le XPath dans la console de firefox en utilisant $x("//expression-xpath") > > > > Si je comprends bien la doc, tu peux aussi aller sur du CSS si tu es plus à l'aise (et là c'est $$() dans la console firexfox): > > > > $driver->find_elements('h3[aria-hidden="true"]', "css") > > > > Je te laisse tester et voir si ça marche :-) > > > > ++Alex > > _______________________________________________ > > Perl mailing list > > Perl at mongueurs.net > > http://listes.mongueurs.net/mailman/listinfo/perl > > Attention, les archives sont publiques > > > > -- > |\ _,,,---,,_ Patrice KARATCHENTZEFF > ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com > |,4- ) )-,_. ,\ ( `'-' > '---''(_/--' `-'\_) -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From patrice.karatchentzeff at gmail.com Sat May 4 11:37:25 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Sat, 4 May 2024 11:37:25 +0200 Subject: [Perl] Perl format et UTF-8 Message-ID: Salut, J'ai un test case pour ceux qui voudraient m'aider. Je cherche à utiliser format pour formater mon texte. C'est nickel, quand il n'y a pas d'accent... Dès qu'il y a des accents, l'alignement ne se fait plus. J'ai eu du mal à comprendre que cela venait de l'encodage. Mon environnement : % env | grep LANG LANGUAGE=fr_FR.UTF-8 GDM_LANG=fr_FR LANG=fr_FR.UTF-8 Si je n'utilise pas le pragma utf8, la sortie du script donne : ------------------------------------------------------------ | Statistiques | +----------------------------------------------------------+ | recherche | cible | trouvé | Échec | +----------------------------------------------------------+ | Foo Bar | Littératu | Foo | Litt | | Foo Bar | Maths | Foo | Math | | Peti Bar | Literature | Peti | Lite | (je ne sais ce que donnera le copier-coller, mais la ligne avec 'Littératu' est décalée, comme si il y avait un caractère de moins après. Si j'active le pragma, (GMail me refuse le copier-coller, sans doute pour des problèmes de transcodage), le formatage est nickel, mais les accents sautent et sont remplacés par des points d'interrogation sur fond blanc. je peux transformer ce point d'interrogation en bonne lettre en appelant encode_utf8($note), mais je ne peux pas le faire sur les chaînes codées en dur dans le format. Mais si l'accent de littérature apparaît, le formatage lui n'est alors plus bon :( J'avoue que j'ai du mal à piger comment fonctionne l'encodage avec Perl aujourd'hui. Ça fait des années que je code en Perl sans me prendre le chou avec ça. Je crois avoir toujours utilisé le pragma use utf8 et fait des print avec des variables avec accent sans problème. Là, cela ne fonctionne plus... Mon système est en UTF-8 depuis que Debian y est passé, donc ça commence à dater... Merci de vos lumières, PK -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: test.pl Type: application/x-perl Taille: 956 octets Desc: non disponible URL: From sebastien at feugere.net Sun May 5 13:32:03 2024 From: sebastien at feugere.net (=?utf-8?Q?S=C3=A9bastien_Feug=C3=A8re?=) Date: Sun, 5 May 2024 13:32:03 +0200 Subject: [Perl] Perl format et UTF-8 In-Reply-To: References: Message-ID: Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: favicon.ico Type: image/x-icon Taille: 4286 octets Desc: non disponible URL: From patrice.karatchentzeff at gmail.com Fri May 10 09:12:29 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Fri, 10 May 2024 09:12:29 +0200 Subject: [Perl] =?utf-8?q?Structure_de_donn=C3=A9es?= Message-ID: Salut, J'ai une question... qui dépasse un peu le cadre directement de la programmation en Perl. C'est la structure de données de mes programmes. Aujourd'hui, j'ai un truc qui fonctionne, mais qui ne me plait pas, car je suis obligé de dupliquer mes données dans mon programme et je voudrais les centraliser, de façon in fine à pouvoir les passer éventuellement en paramètres, sous une forme ou une autre. Mon script prend des données sous forme de paires. J'ai donc une liste de paires et je traite ensuite en interne chaque paire dans une moulinette. J'ai besoin de faire des stats à l'issue du traitement de la paire, donc de rattacher des valeurs de statistique à chaque paire. J'ai une autre contrainte. La traitement n'est pas égal pour chaque paire : il est pondéré. Cela veut dire que certaines paires doivent être moulinées plus souvent. Pour le moment, je m'en sors (et c'est là qu'est l'os) en écrivant une liste de ces paires en dupliquant certaines paires plusieurs fois. Puis en tirant au sort un numéro dans cette liste de paires. Par exemple, si la paire A est dupliquée 3 fois dans une liste de 10 paires, elle a statistiquement 30% de chance d'être choisie contre 10% pour les autres. Cela fonctionne bien. Mon problème est comment décrire une fois pour toutes mes données (et éventuellement pouvoir les externaliser de mon script) avec ces conditions ? Une liste de paires pondérées. Pour le moment, j'ai une table de hash avec pour chaque paire une clé/valeur, que je complète avec les données statistiques. Je suis obligé d'initialiser ma table pour le premier tour de mon script et ensuite de dupliquer les clés/valeurs pour créer une liste que je vais interroger aléatoirement. Un gag de plus est que les clés ne sont pas uniques, donc j'ai d'entrée une table de tables de hash.... Est-ce que vous auriez une idée d'une approche plus globale qui me permettrait d'éviter la duplication ? J'ai essayé de dupliquer en interne à partir du hash, mais je me retrouve avec des référence de hash qui sont incompatibles avec le pragma use strict ! J'espère avoir été clair... N'hésitez pas à me demander d'éclaircir ! Merci d'avance, PK -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From laurent.dami at justice.ge.ch Fri May 10 09:34:01 2024 From: laurent.dami at justice.ge.ch (Dami Laurent (PJ)) Date: Fri, 10 May 2024 07:34:01 +0000 Subject: [Perl] =?iso-8859-1?q?Structure_de_donn=E9es?= In-Reply-To: References: Message-ID: <17820302620741a997bc01f9640f2eb1@justice.ge.ch> Salut, Tu pourrais transformer chaque paire en string, par exemple sous forme de représentation JSON ou YAML ou Perl Dump ou simplement "$val1/$val2". Avec ça tu obtiens des scalaires que tu peux utiliser comme clés de hash, ce qui permet d'associer des fréquences ou autres valeurs statistiques. Ensuite lors des traitements il suffit de décoder les strings pour retrouver les valeurs de chaque paire. Laurent D. -----Message d'origine----- De : perl-bounces at mongueurs.net De la part de Patrice Karatchentzeff Envoyé : vendredi 10 mai 2024 09:12 À : Perl Objet : [Perl] Structure de données PRUDENCE. Ce message provient d'un expéditeur externe à l'Etat. Ne cliquez sur les liens ou n'ouvrez les pièces jointes que si vous faites entière confiance à cet expéditeur. Salut, J'ai une question... qui dépasse un peu le cadre directement de la programmation en Perl. C'est la structure de données de mes programmes. Aujourd'hui, j'ai un truc qui fonctionne, mais qui ne me plait pas, car je suis obligé de dupliquer mes données dans mon programme et je voudrais les centraliser, de façon in fine à pouvoir les passer éventuellement en paramètres, sous une forme ou une autre. Mon script prend des données sous forme de paires. J'ai donc une liste de paires et je traite ensuite en interne chaque paire dans une moulinette. J'ai besoin de faire des stats à l'issue du traitement de la paire, donc de rattacher des valeurs de statistique à chaque paire. J'ai une autre contrainte. La traitement n'est pas égal pour chaque paire : il est pondéré. Cela veut dire que certaines paires doivent être moulinées plus souvent. Pour le moment, je m'en sors (et c'est là qu'est l'os) en écrivant une liste de ces paires en dupliquant certaines paires plusieurs fois. Puis en tirant au sort un numéro dans cette liste de paires. Par exemple, si la paire A est dupliquée 3 fois dans une liste de 10 paires, elle a statistiquement 30% de chance d'être choisie contre 10% pour les autres. Cela fonctionne bien. Mon problème est comment décrire une fois pour toutes mes données (et éventuellement pouvoir les externaliser de mon script) avec ces conditions ? Une liste de paires pondérées. Pour le moment, j'ai une table de hash avec pour chaque paire une clé/valeur, que je complète avec les données statistiques. Je suis obligé d'initialiser ma table pour le premier tour de mon script et ensuite de dupliquer les clés/valeurs pour créer une liste que je vais interroger aléatoirement. Un gag de plus est que les clés ne sont pas uniques, donc j'ai d'entrée une table de tables de hash.... Est-ce que vous auriez une idée d'une approche plus globale qui me permettrait d'éviter la duplication ? J'ai essayé de dupliquer en interne à partir du hash, mais je me retrouve avec des référence de hash qui sont incompatibles avec le pragma use strict ! J'espère avoir été clair... N'hésitez pas à me demander d'éclaircir ! Merci d'avance, PK -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) _______________________________________________ Perl mailing list Perl at mongueurs.net http://listes.mongueurs.net/mailman/listinfo/perl Attention, les archives sont publiques From kai.carver at gmail.com Sat May 11 07:32:45 2024 From: kai.carver at gmail.com (Kai Carver) Date: Sat, 11 May 2024 07:32:45 +0200 Subject: [Perl] =?utf-8?q?Structure_de_donn=C3=A9es?= In-Reply-To: References: Message-ID: Hello, Pour moi ta description est un peu abstraite, donc je comprends pas bien. C?est sans doute parfaitement décrit, mais sans savoir de quoi on parle, j?ai du mal à visualiser le problème. Tu pourrais dire de quoi il s?agit ? :) k a i On Fri, May 10, 2024 at 09:12 Patrice Karatchentzeff < patrice.karatchentzeff at gmail.com> wrote: > Salut, > > J'ai une question... qui dépasse un peu le cadre directement de la > programmation en Perl. C'est la structure de données de mes > programmes. > > Aujourd'hui, j'ai un truc qui fonctionne, mais qui ne me plait pas, > car je suis obligé de dupliquer mes données dans mon programme et je > voudrais les centraliser, de façon in fine à pouvoir les passer > éventuellement en paramètres, sous une forme ou une autre. > > Mon script prend des données sous forme de paires. J'ai donc une liste > de paires et je traite ensuite en interne chaque paire dans une > moulinette. J'ai besoin de faire des stats à l'issue du traitement de > la paire, donc de rattacher des valeurs de statistique à chaque paire. > > J'ai une autre contrainte. La traitement n'est pas égal pour chaque > paire : il est pondéré. Cela veut dire que certaines paires doivent > être moulinées plus souvent. Pour le moment, je m'en sors (et c'est là > qu'est l'os) en écrivant une liste de ces paires en dupliquant > certaines paires plusieurs fois. Puis en tirant au sort un numéro dans > cette liste de paires. Par exemple, si la paire A est dupliquée 3 fois > dans une liste de 10 paires, elle a statistiquement 30% de chance > d'être choisie contre 10% pour les autres. Cela fonctionne bien. > > Mon problème est comment décrire une fois pour toutes mes données (et > éventuellement pouvoir les externaliser de mon script) avec ces > conditions ? Une liste de paires pondérées. > > Pour le moment, j'ai une table de hash avec pour chaque paire une > clé/valeur, que je complète avec les données statistiques. Je suis > obligé d'initialiser ma table pour le premier tour de mon script et > ensuite de dupliquer les clés/valeurs pour créer une liste que je vais > interroger aléatoirement. Un gag de plus est que les clés ne sont pas > uniques, donc j'ai d'entrée une table de tables de hash.... > > Est-ce que vous auriez une idée d'une approche plus globale qui me > permettrait d'éviter la duplication ? J'ai essayé de dupliquer en > interne à partir du hash, mais je me retrouve avec des référence de > hash qui sont incompatibles avec le pragma use strict ! > > J'espère avoir été clair... N'hésitez pas à me demander d'éclaircir ! > > Merci d'avance, > > PK > > -- > |\ _,,,---,,_ Patrice KARATCHENTZEFF > ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com > |,4- ) )-,_. ,\ ( `'-' > '---''(_/--' `-'\_) > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From patrice.karatchentzeff at gmail.com Sat May 11 07:50:25 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Sat, 11 May 2024 07:50:25 +0200 Subject: [Perl] =?utf-8?q?Structure_de_donn=C3=A9es?= In-Reply-To: References: Message-ID: Salut, Ce n'est pas un secret non plus... J'ai fait un script pour augmenter le SEO de sites Internet. J'ai donc un script qui effectue une recherche sur Google (d'où la paire : le mot-clé recherché et le site à trouver (un mot-clé suffit aussi)). Maintenant, il faut plusieurs mots-clés pour couvrir les besoins. Je fais donc un wrapper du premier script qui assemble la liste des mots-clés. Mais certains sont plus importants que d'autres, donc je pondère afin de privilégier certains. Je communique en socket Unix du script vers le wrapper pour remonter quelques stats et le wrapper prend en paramètre le nombre de recherches total. À chaque recherche, le wrapper prend un couple aléatoirement et le balance au script pour qu'il effectue la recherche. Le tout avec suffisamment d'aléatoire et de ruses partout afin de simuler une recherche humaine évidemment :) Google n'aimant pas vraiment ce genre de pratique ! Donc c'est le wrapper qui me pose des problèmes de propreté. Si je veux qu'il soit réutilisable sans trop me prendre la tête, je dois centraliser la liste des recherches pondérées à un seul endroit... Sinon, je dois partiellement le réécrire à chaque nouvelle situation (ce qui dans l'absolu n'est pas un gros travail, mais bon, j'aime bien faire les choses correctement, et je mets ma façon d'avoir résolu ce problème dans les trucs crades qui fonctionnent mais qui ne me satisfont pas). Voilà, si ça peut aider... Le sam. 11 mai 2024 à 07:33, Kai Carver a écrit : > > Hello, > > Pour moi ta description est un peu abstraite, donc je comprends pas bien. > C?est sans doute parfaitement décrit, mais sans savoir de quoi on parle, j?ai du mal à visualiser le problème. > Tu pourrais dire de quoi il s?agit ? :) > > k a i > > On Fri, May 10, 2024 at 09:12 Patrice Karatchentzeff wrote: >> >> Salut, >> >> J'ai une question... qui dépasse un peu le cadre directement de la >> programmation en Perl. C'est la structure de données de mes >> programmes. >> >> Aujourd'hui, j'ai un truc qui fonctionne, mais qui ne me plait pas, >> car je suis obligé de dupliquer mes données dans mon programme et je >> voudrais les centraliser, de façon in fine à pouvoir les passer >> éventuellement en paramètres, sous une forme ou une autre. >> >> Mon script prend des données sous forme de paires. J'ai donc une liste >> de paires et je traite ensuite en interne chaque paire dans une >> moulinette. J'ai besoin de faire des stats à l'issue du traitement de >> la paire, donc de rattacher des valeurs de statistique à chaque paire. >> >> J'ai une autre contrainte. La traitement n'est pas égal pour chaque >> paire : il est pondéré. Cela veut dire que certaines paires doivent >> être moulinées plus souvent. Pour le moment, je m'en sors (et c'est là >> qu'est l'os) en écrivant une liste de ces paires en dupliquant >> certaines paires plusieurs fois. Puis en tirant au sort un numéro dans >> cette liste de paires. Par exemple, si la paire A est dupliquée 3 fois >> dans une liste de 10 paires, elle a statistiquement 30% de chance >> d'être choisie contre 10% pour les autres. Cela fonctionne bien. >> >> Mon problème est comment décrire une fois pour toutes mes données (et >> éventuellement pouvoir les externaliser de mon script) avec ces >> conditions ? Une liste de paires pondérées. >> >> Pour le moment, j'ai une table de hash avec pour chaque paire une >> clé/valeur, que je complète avec les données statistiques. Je suis >> obligé d'initialiser ma table pour le premier tour de mon script et >> ensuite de dupliquer les clés/valeurs pour créer une liste que je vais >> interroger aléatoirement. Un gag de plus est que les clés ne sont pas >> uniques, donc j'ai d'entrée une table de tables de hash.... >> >> Est-ce que vous auriez une idée d'une approche plus globale qui me >> permettrait d'éviter la duplication ? J'ai essayé de dupliquer en >> interne à partir du hash, mais je me retrouve avec des référence de >> hash qui sont incompatibles avec le pragma use strict ! >> >> J'espère avoir été clair... N'hésitez pas à me demander d'éclaircir ! >> >> Merci d'avance, >> >> PK >> >> -- >> |\ _,,,---,,_ Patrice KARATCHENTZEFF >> ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com >> |,4- ) )-,_. ,\ ( `'-' >> '---''(_/--' `-'\_) >> _______________________________________________ >> Perl mailing list >> Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl >> Attention, les archives sont publiques > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From ponder.stibbons at orange.fr Mon May 13 21:12:52 2024 From: ponder.stibbons at orange.fr (Jean) Date: Mon, 13 May 2024 21:12:52 +0200 Subject: [Perl] Perl format et UTF-8 In-Reply-To: References: Message-ID: <0140f7ac-cd17-4a27-92e7-89596c46cfe3@orange.fr> Le problème ressemble un peu à celui que j'ai constaté sur un de mes modules. Voir https://rt.cpan.org/Ticket/Display.html?id=100311 sauf que moi, j'utilisais "sprintf" ou "printf" alors que tu utilises les formats. Je m'en suis sorti avec "use utf8" : https://github.com/jforget/DateTime-Calendar-FrenchRevolutionary/commit/b4c1a715c93d86c2b696ba811e80e99d0f44af5f https://github.com/jforget/DateTime-Calendar-FrenchRevolutionary/commit/4c7b33f01970716ba15216db0529e4bfb0a3f4d9 (commits du 5 décembre 2014) Pour en revenir à ton cas de figure, tu peux abandonner les "format" pour faire des "printf". Ou alors, tu adaptes ton format titre pour que la ligne contienne deux champs variables, et ces champs variables sont alimentés par les chaînes constantes "trouvé" et "Échec". Je l'avoue, c'est de la bidouille infâme. Ne t'attends pas à voir des corrections sur "format" dans les prochaines versions de Perl, les "format" n'ont pas la cote. Tu n'arrives pas à comprendre comment fonctionne l'encodage en Perl ? Tu n'es pas le seul, loin de là. En espérant avoir pu te donner des idées utiles, Jean On 05/05/2024 13:32, Sébastien Feugère wrote: > Bonjour, > > Ceci devrait aider. Dommage que ces exemples ne soient pas liés depuis > perlform d?ailleurs? > > perlunicook - cookbookish examples of handling Unicode in Perl - Perldoc > Browser > > perldoc.perl.org > > favicon.ico > > > > > > Sébastien Feugère > >> Le 4 mai 2024 à 11:37, Patrice Karatchentzeff >> a écrit : >> >> ?Salut, >> >> J'ai un test case pour ceux qui voudraient m'aider. Je cherche à >> utiliser format pour formater mon texte. C'est nickel, quand il n'y a >> pas d'accent... Dès qu'il y a des accents, l'alignement ne se fait >> plus. J'ai eu du mal à comprendre que cela venait de l'encodage. >> >> Mon environnement : >> >> % env | grep LANG >> LANGUAGE=fr_FR.UTF-8 >> GDM_LANG=fr_FR >> LANG=fr_FR.UTF-8 >> >> Si je n'utilise pas le pragma utf8, la sortie du script donne : >> >>  ------------------------------------------------------------ >> |                       Statistiques                         | >>  +----------------------------------------------------------+ >> |        recherche             |   cible    | trouvé | Échec | >>  +----------------------------------------------------------+ >> | Foo Bar                      | Littératu |  Foo   |  Litt | >> | Foo Bar                      | Maths      |  Foo   |  Math | >> | Peti Bar                     | Literature |  Peti  |  Lite | >> >> (je ne sais ce que donnera le copier-coller, mais la ligne avec >> 'Littératu' est décalée, comme si il y avait un caractère de moins >> après. >> >> Si j'active le pragma, (GMail me refuse le copier-coller, sans doute >> pour des problèmes de transcodage), le formatage est nickel, mais les >> accents sautent et sont remplacés par des points d'interrogation sur >> fond blanc. >> >> je peux transformer ce point d'interrogation en bonne lettre en >> appelant encode_utf8($note), mais je ne peux pas le faire sur les >> chaînes codées en dur dans le format. Mais si l'accent de littérature >> apparaît, le formatage lui n'est alors plus bon :( >> >> J'avoue que j'ai du mal à piger comment fonctionne l'encodage avec >> Perl aujourd'hui. Ça fait des années que je code en Perl sans me >> prendre le chou avec ça. Je crois avoir toujours utilisé le pragma use >> utf8 et fait des print avec des variables avec accent sans problème. >> Là, cela ne fonctionne plus... Mon système est en UTF-8 depuis que >> Debian y est passé, donc ça commence à dater... >> >> Merci de vos lumières, >> >> PK >> >> -- >>      |\      _,,,---,,_           Patrice KARATCHENTZEFF >> ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com >>     |,4-  ) )-,_. ,\ (  `'-' >>    '---''(_/--'  `-'\_) >> >> _______________________________________________ >> Perl mailing list >> Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl >> Attention, les archives sont publiques > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques From patrice.karatchentzeff at gmail.com Fri May 17 08:27:09 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Fri, 17 May 2024 08:27:09 +0200 Subject: [Perl] Perl format et UTF-8 In-Reply-To: References: Message-ID: Merci pour la documentation, mais malheureusement, cela ne m'aide pas. J'ai creusé un peu depuis... Le problème vient de l'encodage des clés dans un hash. Je n'ai pas de souci avec l'encodage des chaînes pour afficher sur la sortie standard, avec ou sans perlform sinon. En revanche, si j'ai une majuscule dans mes clés et que je me sers d'un hash pour construire mon format, la clé est soit mal encodé (et l'affichage est correctement positionné), soit bien encodé (l'accent est présent), mais l'ajustement est décalé, comme si le caractère accentué n'avait pas le bon nombre d'octet. En m'appuyant sur le Cookbook et les exemples des tables de hachage, j'ai essayé différents trucs (je crois toutes les combinaisons), mais rien n'y fait : je suis dans un cas ou dans l'autre, jamais dans le cas bien affiché bien tabulé... C'est vraiment spécifique à perlform... ça marche partout ailleurs sinon. Un bogue ? Ce serait étonnant que je sois le premier à tomber dessus depuis... Le dim. 5 mai 2024 à 13:32, Sébastien Feugère a écrit : > Bonjour, > > Ceci devrait aider. Dommage que ces exemples ne soient pas liés depuis > perlform d?ailleurs? > > perlunicook - cookbookish examples of handling Unicode in Perl - Perldoc > Browser > > perldoc.perl.org > > [image: favicon.ico] > > > > > Sébastien Feugère > > Le 4 mai 2024 à 11:37, Patrice Karatchentzeff < > patrice.karatchentzeff at gmail.com> a écrit : > > ?Salut, > > J'ai un test case pour ceux qui voudraient m'aider. Je cherche à > utiliser format pour formater mon texte. C'est nickel, quand il n'y a > pas d'accent... Dès qu'il y a des accents, l'alignement ne se fait > plus. J'ai eu du mal à comprendre que cela venait de l'encodage. > > Mon environnement : > > % env | grep LANG > LANGUAGE=fr_FR.UTF-8 > GDM_LANG=fr_FR > LANG=fr_FR.UTF-8 > > Si je n'utilise pas le pragma utf8, la sortie du script donne : > > ------------------------------------------------------------ > | Statistiques | > +----------------------------------------------------------+ > | recherche | cible | trouvé | Échec | > +----------------------------------------------------------+ > | Foo Bar | Littératu | Foo | Litt | > | Foo Bar | Maths | Foo | Math | > | Peti Bar | Literature | Peti | Lite | > > (je ne sais ce que donnera le copier-coller, mais la ligne avec > 'Littératu' est décalée, comme si il y avait un caractère de moins > après. > > Si j'active le pragma, (GMail me refuse le copier-coller, sans doute > pour des problèmes de transcodage), le formatage est nickel, mais les > accents sautent et sont remplacés par des points d'interrogation sur > fond blanc. > > je peux transformer ce point d'interrogation en bonne lettre en > appelant encode_utf8($note), mais je ne peux pas le faire sur les > chaînes codées en dur dans le format. Mais si l'accent de littérature > apparaît, le formatage lui n'est alors plus bon :( > > J'avoue que j'ai du mal à piger comment fonctionne l'encodage avec > Perl aujourd'hui. Ça fait des années que je code en Perl sans me > prendre le chou avec ça. Je crois avoir toujours utilisé le pragma use > utf8 et fait des print avec des variables avec accent sans problème. > Là, cela ne fonctionne plus... Mon système est en UTF-8 depuis que > Debian y est passé, donc ça commence à dater... > > Merci de vos lumières, > > PK > > -- > |\ _,,,---,,_ Patrice KARATCHENTZEFF > ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com > |,4- ) )-,_. ,\ ( `'-' > '---''(_/--' `-'\_) > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: favicon.ico Type: application/octet-stream Taille: 4286 octets Desc: non disponible URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: test.pl Type: application/x-perl Taille: 1262 octets Desc: non disponible URL: From patrice.karatchentzeff at gmail.com Fri May 17 08:48:27 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Fri, 17 May 2024 08:48:27 +0200 Subject: [Perl] Perl format et UTF-8 In-Reply-To: References: Message-ID: Bon, j'ai finalement réussi :) Il suffisait bêtement d'imposer le STDOUT en utf8 ! Je joins mon test corrigé (et dans les commentaires, on peut reconstruire avec une variable et la faire changer au fur et à mesure... Mais c'est inutile, puisque cela fonctionne out of ze box avec la bonne sortie standard !) Le ven. 17 mai 2024 à 08:27, Patrice Karatchentzeff < patrice.karatchentzeff at gmail.com> a écrit : > Merci pour la documentation, mais malheureusement, cela ne m'aide pas. > > J'ai creusé un peu depuis... Le problème vient de l'encodage des clés dans > un hash. Je n'ai pas de souci avec l'encodage des chaînes pour afficher sur > la sortie standard, avec ou sans perlform sinon. > > En revanche, si j'ai une majuscule dans mes clés et que je me sers d'un > hash pour construire mon format, la clé est soit mal encodé (et l'affichage > est correctement positionné), soit bien encodé (l'accent est présent), mais > l'ajustement est décalé, comme si le caractère accentué n'avait pas le bon > nombre d'octet. > > En m'appuyant sur le Cookbook et les exemples des tables de hachage, j'ai > essayé différents trucs (je crois toutes les combinaisons), mais rien n'y > fait : je suis dans un cas ou dans l'autre, jamais dans le cas bien affiché > bien tabulé... > > C'est vraiment spécifique à perlform... ça marche partout ailleurs sinon. > Un bogue ? Ce serait étonnant que je sois le premier à tomber dessus > depuis... > > Le dim. 5 mai 2024 à 13:32, Sébastien Feugère a > écrit : > >> Bonjour, >> >> Ceci devrait aider. Dommage que ces exemples ne soient pas liés depuis >> perlform d?ailleurs? >> >> perlunicook - cookbookish examples of handling Unicode in Perl - Perldoc >> Browser >> >> perldoc.perl.org >> >> [image: favicon.ico] >> >> >> >> >> Sébastien Feugère >> >> Le 4 mai 2024 à 11:37, Patrice Karatchentzeff < >> patrice.karatchentzeff at gmail.com> a écrit : >> >> ?Salut, >> >> J'ai un test case pour ceux qui voudraient m'aider. Je cherche à >> utiliser format pour formater mon texte. C'est nickel, quand il n'y a >> pas d'accent... Dès qu'il y a des accents, l'alignement ne se fait >> plus. J'ai eu du mal à comprendre que cela venait de l'encodage. >> >> Mon environnement : >> >> % env | grep LANG >> LANGUAGE=fr_FR.UTF-8 >> GDM_LANG=fr_FR >> LANG=fr_FR.UTF-8 >> >> Si je n'utilise pas le pragma utf8, la sortie du script donne : >> >> ------------------------------------------------------------ >> | Statistiques | >> +----------------------------------------------------------+ >> | recherche | cible | trouvé | Échec | >> +----------------------------------------------------------+ >> | Foo Bar | Littératu | Foo | Litt | >> | Foo Bar | Maths | Foo | Math | >> | Peti Bar | Literature | Peti | Lite | >> >> (je ne sais ce que donnera le copier-coller, mais la ligne avec >> 'Littératu' est décalée, comme si il y avait un caractère de moins >> après. >> >> Si j'active le pragma, (GMail me refuse le copier-coller, sans doute >> pour des problèmes de transcodage), le formatage est nickel, mais les >> accents sautent et sont remplacés par des points d'interrogation sur >> fond blanc. >> >> je peux transformer ce point d'interrogation en bonne lettre en >> appelant encode_utf8($note), mais je ne peux pas le faire sur les >> chaînes codées en dur dans le format. Mais si l'accent de littérature >> apparaît, le formatage lui n'est alors plus bon :( >> >> J'avoue que j'ai du mal à piger comment fonctionne l'encodage avec >> Perl aujourd'hui. Ça fait des années que je code en Perl sans me >> prendre le chou avec ça. Je crois avoir toujours utilisé le pragma use >> utf8 et fait des print avec des variables avec accent sans problème. >> Là, cela ne fonctionne plus... Mon système est en UTF-8 depuis que >> Debian y est passé, donc ça commence à dater... >> >> Merci de vos lumières, >> >> PK >> >> -- >> |\ _,,,---,,_ Patrice KARATCHENTZEFF >> ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com >> |,4- ) )-,_. ,\ ( `'-' >> '---''(_/--' `-'\_) >> >> _______________________________________________ >> Perl mailing list >> Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl >> Attention, les archives sont publiques >> >> _______________________________________________ >> Perl mailing list >> Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl >> Attention, les archives sont publiques > > > > -- > |\ _,,,---,,_ Patrice KARATCHENTZEFF > ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com > |,4- ) )-,_. ,\ ( `'-' > '---''(_/--' `-'\_) > -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: favicon.ico Type: application/octet-stream Taille: 4286 octets Desc: non disponible URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: test.pl Type: application/x-perl Taille: 1263 octets Desc: non disponible URL: