[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