[Perl] Perl format et UTF-8

Patrice Karatchentzeff patrice.karatchentzeff at gmail.com
Ven 17 Mai 08:48:27 CEST 2024


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 <sebastien at feugere.net> 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
>> <https://perldoc.perl.org/perlunicook#%E2%84%9E-34:-Unicode-column-width-for-printing>
>> perldoc.perl.org
>> <https://perldoc.perl.org/perlunicook#%E2%84%9E-34:-Unicode-column-width-for-printing>
>> [image: favicon.ico]
>> <https://perldoc.perl.org/perlunicook#%E2%84%9E-34:-Unicode-column-width-for-printing>
>> <https://perldoc.perl.org/perlunicook#%E2%84%9E-34:-Unicode-column-width-for-printing>
>>
>>
>> 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-  ) )-,_. ,\ (  `'-'
>>    '---''(_/--'  `-'\_)
>> <test.pl>
>> _______________________________________________
>> 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: <http://listes.mongueurs.net/archives/perl/attachments/20240517/e2f25a79/attachment-0001.html>
-------------- 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: <http://listes.mongueurs.net/archives/perl/attachments/20240517/e2f25a79/attachment-0001.obj>
-------------- 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: <http://listes.mongueurs.net/archives/perl/attachments/20240517/e2f25a79/attachment-0001.bin>


Plus d'informations sur la liste de diffusion Perl