Bah, ton script se comporte comme si tu avais une locale type fr_FR.iso88591 ou fr_FR.iso885915@euro (ou autre codepage, bref c'est pas de l'utf8). Le résultat ne trompe pas:
Code correspondances : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 # Encodage UTF-8 ISO8859-1 # ----------------------------------------------------------------- # a ï d => a \xC3 \xAF d => a à ¯ d # é l è v e => \xC3 \xA9 l \xC3 \xA8 v e => à © l à ¨ v e # c a l e ç o n => c a l e \xC3 \xA7 o n => c a l e à § o n
D'où le résultat (avec use locale;):À lire cette page du manuel à propos des locales, il pourrait y avoir plusieurs raisons pour lesquelles ta locale définie dans tes variables d'environnement (notamment celle qui nous préoccupe: LC_COLLATE) ne soit pas prise en compte. Donc il s'agit maintenant d'éliminer une à une les causes possibles. Il se trouve que la version de Perl utilisée peut être un paramètre (donc donne la comme demandée par disedorgue), mais aussi la configuration du système.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 aïd abricot élève arrosoir caleçon cales couchette entonnoir zozo aïd abricot élève arrosoir caleçon cales couchette entonnoir zozo
Perso, chez moi ton code marche très bien avec use locale; (perl 5.18.2, mêmes variables d'environnement).
Partager