Programmation.perl : substition avec perl et utf-8

Posté par hoshid () le 13 mars 2008
0

Bonjour



Je ne fais pas de script perl mais je l'utilise pas peu à la manière de SED pour faire des substitutions ou autres



Je suis en UTF-8 et j'ai quelques difficultés, comme dans cet exemple:


echo école | perl -pe 's/^./e/'

cela me renvoie : e�cole (edit: c'est mal rendu sur le forum, il y a juste une fois le signe avec le point d'interrogation en réalité)




Je n'ai pas ce problème avec SED. Savez-vous comment y remédier ?

> Lire le message (7 commentaires, moyenne: 1).  

Vous avez demandé le commentaire #913636.

avec un fichier txt

Posté par hoshid () le 14/03/2008 à 01:04. (lien). Évalué à 1.

En fait j'ai parlé un peu trop vite en disant que je laissais tomber l'option -C

Si j'ai par exemple un fichier txt en utf8 avec dedans école: "echo école > test.txt"

La ligne suivante ne fonctionne pas niveau encodage et renvoie "à�cole" !
▸ perl -pe 'use encoding utf8 ; s/./à/' test.txt

En revanche c'est bon avec :
▸ perl -C -pe 'use encoding utf8 ; s/é/à/' test.txt
et
▸ perl -C -pe 'use encoding utf8 ; s/./à/' test.txt

C'est un peu lourd quand même… :-(

[ Répondre ]

  • [^]Re: avec un fichier txt

    Posté par hoshid () le 14/03/2008 à 01:11. (lien). Évalué à 1.

    tiens c'est marrant car finalement

    ▸ perl -pe 'use encoding utf8 ; s/./à/' < test.txt
    renvoie bien "àcole", même sans l'option -C

    alors que
    ▸ perl -pe 'use encoding utf8 ; s/./à/' test.txt
    renvoie "à�cole" s'il n'y a pas l'option -C

    :-/
    bon faut que j'arrête de flooder moi...

    [ Répondre ]