[Perl] utf8 et lettre à

minc minc.charles at wanadoo.fr
Jeu 15 Sep 17:43:47 CEST 2016


Il est écrit quelque part :

|U+00A0 NO-BREAK SPACE (not matched by \s) mais : my $test=encode_utf8( 
decode_utf8 "<toto>déjà</toto>") ; my $reg1=qr{<toto>(.*?)</toto>} ; my 
$reg2=qr{<toto>\s*(.*)\s*</toto>} ; my 
$reg3=qr{<toto>\s*(.*?)\s*</toto>} ; $test=~m/$reg1/ ; say $1 ; 
$test=~m/$reg2/ ; say $1 ; $test=~m/$reg3/ ; say $1 ; qui donne : déjà 
déjà déjxC3 |

[pour les sceptiques il peuvent essayer en remplaçant 'à' par 'ā' ( le a 
macron ;)  ) ou une autre lettre]
CQFD = bug

Charles

Charles

Le 15/09/2016 à 14:30, minc a écrit :
> Non , d'ailleurs le pragma use utf8  est ici , inutile puisque que cette
> directive
>
> porte essentiellement sur le texte du programme lui-même et je travaille
>
> avec des fichiers dont je contrôle les entrées et les sorties.
>
> J'ai néanmoins testé et dans mon cas les longueurs de mots deviennent
> erronées,
> sans pour autant remédier à la question.
>
> J'utilise un perl 5.16.3, windows 7 et les fichiers xml sources sont 
> en UTF8.
>
> Merci.
>
> Merci Laurent (ce n'est pas critique, j'ai mes résultats, mais cette 
> exception
> est curieuse, le même résultat est obtenu avec chop ! ).
>
>  Le 15/09/2016 à 13:27, Dominique Asselineau a écrit :
>> Bonjour,
>>
>> Les 2 lignes suivantes sont-elles présentes dans les déclarations :
>>
>> use utf8;
>> use feature 'unicode_strings';
>>
>> Dominique
>>
>> minc wrote on Thu, Sep 15, 2016 at 01:17:23PM +0200
>>> Bonjour,
>>>
>>> J’extraie des mots d'un dictionnaire en xml avec la regex
>>>
>>> suivante  :  my 
>>> $extract=qr{<orthography>\s*(?<word>.*?)\s*</orthography>} ;
>>>
>>> les résultats sont correctes sauf pour les mots se terminant par 'à' 
>>> tel que
>>> "déjà" ou j'obtiens
>>>
>>> "déj\xC3" sachant que 'à' en utf8 est la suite 'C3 A0'.
>>>
>>> Les autres caractères accentués ne me semble pas poser de problème.
>>>
>>> Le résultat est corrigé avec :
>>>
>>>      my $extract=qr{<orthography>(?<word>.*?)</orthography>} ;
>>>
>>> Quelle hypothèse peut-on formuler pour expliquer cette "troncation" ?
>>>
>>> Merci.
>>>
>>> Charles
>>>
>>> begin:vcard
>>> note;quoted-printable:Put your hand on a hot stove for a minute, and 
>>> it seems like an hour. Sit=
>>>      with a pretty girl for an hour, and it seems like a minute. 
>>> That's relat=
>>>     ivity.=0D=0A=
>>>     (A. Einstein)
>>> version:2.1
>>> end:vcard
>>>
>>> _______________________________________________
>>> Perl mailing list
>>> Perl at mongueurs.net
>>> http://listes.mongueurs.net/mailman/listinfo/perl
>>
>
>
>
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/mailman/private/perl/attachments/20160915/4f58c31f/attachment.html>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: minc_charles.vcf
Type: text/x-vcard
Taille: 238 octets
Desc: non disponible
URL: <http://listes.mongueurs.net/mailman/private/perl/attachments/20160915/4f58c31f/attachment.vcf>


Plus d'informations sur la liste de diffusion Perl