[Perl] Perl format et UTF-8

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


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-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/archives/perl/attachments/20240517/2e1759cc/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/2e1759cc/attachment-0001.obj>
-------------- 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: <http://listes.mongueurs.net/archives/perl/attachments/20240517/2e1759cc/attachment-0001.bin>


Plus d'informations sur la liste de diffusion Perl