[Perl] Perl format et UTF-8

Jean ponder.stibbons at orange.fr
Lun 13 Mai 21:12:52 CEST 2024


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 
> <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>
> 	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



Plus d'informations sur la liste de diffusion Perl