Re: [SSFR] quel langage ?

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


Selon Vincent Lefevre <vincent@xxxxxxxxxx>:

> Avec un encodage qui n'est pas multibyte comme UTF-8, on peut utiliser
> directement la fonction reverse de Perl:
>
> print scalar reverse "abcdefg";
>
> Malheureusement, reverse permute les octets et non les caractères,
> donc ça ne fonctionne pas en UTF-8. En est-il de même pour python?

Cette remarque correspond-elle à du vécu ou à une supposition ?
Dans tous les cas, reverse() fonctionne avec UTF-8 depuis Perl 5.8 :

$ cat chars.utf8.txt
  à â ä
é è ê ë
  ì î ï
  ò ô ö
  ù û ü

$ perl -e 'open(F,"<:utf8",shift); print scalar reverse <F>' chars.utf8.txt
ou
$ perl -Ci -e 'open(F,shift); print scalar reverse <F>' chars.utf8.txt

ü û ù
ö ô ò
ï î ì
ë ê è é
ä â à

Devel::Peek confirme que la chaîne lue est bien stockée en interne en
UTF-8 (présence de "UTF8 dans les flags) :

$ perl -Ci -MDevel::Peek -e 'open(F,shift); print Dump($line = <F>)'
chars.utf8.txt

SV = PV(0x10011ebc) at 0x1002ef8c
  REFCNT = 1
  FLAGS = (POK,pPOK,UTF8)
  PV = 0x100251d8 "  \303\240 \303\242 \303\244\n"\0 [UTF8 "  \x{e0} \x{e2}
\x{e4}\n"]
  CUR = 11
  LEN = 80

--
Sébastien Aperghis-Tramoni

Close the world, txEn eht nepO.



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/