Bon j'ai fini par laisser tomber l'option -C et j'ai appris qu'on pouvait spécifier "use encoding" avec "utf8" ou ":locale"
Avec cela le résultat est bon dans les deux cas :
▸ echo école | perl -pe 'use encoding utf8; s/./à/'
ou
▸ echo école | perl -pe 'use encoding utf8; s/é/à/'
En revanche j'aimerais bien savoir s'il n'y a pas moyen que Perl utilise par défaut l'utf-8, histoire de ne pas avoir à le préciser tout le temps.
(je vais aussi chercher de mon côté, mais demain…)
Tiens, en essayant un peu par hasard d'ajouter l'option -C comme dans une ligne de code que je viens de voir sur cette page : http://www.cl.cam.ac.uk/~mgk25/unicode.html#perl
et bien ça fonctionne :
echo école | perl -C -pe 's/^./e/'
Le résultat est correct !
Je ne sais même pas ce que signifie ce -C (un tour dans "man perl" ne m'a pas renseigné)
Je vais encore chercher, mais si quelqu'un peut me le dire…
[^] # Re: avec un fichier txt
Posté par hoshid . En réponse au message substition avec perl et utf-8. Évalué à 1.
▸ 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...
# avec un fichier txt
Posté par hoshid . En réponse au message substition avec perl et utf-8. Évalué à 1.
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… :-(
[^] # "use encoding utf8"
Posté par hoshid . En réponse au message substition avec perl et utf-8. Évalué à 1.
Avec cela le résultat est bon dans les deux cas :
▸ echo école | perl -pe 'use encoding utf8; s/./à/'
ou
▸ echo école | perl -pe 'use encoding utf8; s/é/à/'
En revanche j'aimerais bien savoir s'il n'y a pas moyen que Perl utilise par défaut l'utf-8, histoire de ne pas avoir à le préciser tout le temps.
(je vais aussi chercher de mon côté, mais demain…)
[^] # Re: solution ?
Posté par hoshid . En réponse au message substition avec perl et utf-8. Évalué à 1.
Émettons que je veuille remplacer école par àcole :
Ceci fonctionne :
▸ echo école | perl -CI -pe 's/./à/'
Mais ceci ne fonctionne pas (renvoie "�ole" )
▸ echo école | perl -CI -pe 's/é/à/'
d'un autre côté ceci fonctionne :
▸ echo école | perl -C -pe 's/é/à/'
Mais pas ceci (renvoie "Ã cole") :
▸ echo école | perl -C -pe 's/./à/'
J'ai beau essayer toutes les combinaisons pour l'option -C, aucune ne semble fonctionner à la fois pour 's/./à/' et 's/é/à/'
# solution ?
Posté par hoshid . En réponse au message substition avec perl et utf-8. Évalué à 1.
et bien ça fonctionne :
echo école | perl -C -pe 's/^./e/'
Le résultat est correct !
Je ne sais même pas ce que signifie ce -C (un tour dans "man perl" ne m'a pas renseigné)
Je vais encore chercher, mais si quelqu'un peut me le dire…
# correction
Posté par hoshid . En réponse au message substition avec perl et utf-8. Évalué à 1.
ps : désolé pour l'erreur dans le titre et je voulais écrire "je l'utilise un peu". Mais on ne peut apparemment pas éditer sur ce forum.