1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #!/usr/bin/env perl
use strict;
use warnings;
use utf8;
# Pour avoir les accents dans l'invite de commande (Console/Terminal)
ActiverAccents();
my $toto='é';
print $toto . "\n";
#==============================================================
# Pour avoir les accents sur la console DOS
# http://perl.developpez.com/faq/perl/?page=Terminal#AccentsDOS
#==============================================================
sub ActiverAccents {
my $encodage;
# Windows
if ( lc($^O ) eq 'mswin32') { # Si je suis sur Windows
eval {
my ($codepage) = ( `chcp` =~ m/:\s+(\d+)/ ); # On récupère le nombre que renvoie chcp dans une invite de commande
# exemple : Page de codes active*: 437
$encodage = "cp$codepage"; # On accole ce nombre au libellé "cp" de façon avoir cp437
foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) { # pour les fichiers spéciaux sortie_Ecran, Sortie_Erreur, Clavier_Entrée
binmode $h, ":encoding($encodage)"; # djibril modifie l'encodage ;)
}
};
}
else { # SINON je suis dans Unix / Linux
$encodage = `locale charmap`; # On récupère l'encodage par défaut, mais avec la commande qui va bien
eval {
foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) { # djibril modifie l'encodage des fichiers spéciaux ;)
binmode $h, ":encoding($encodage)";
}
};
}
return $encodage; # Retourne le bon encodage suivant l'OS
}
#Sinon petit rappel pour info :
#ü \x81 à \x85 è \x8A
#é \x82 ç \x87 ï \x8B
#â \x83 ê \x88 î \x8C
#ä \x84 ë \x89 |
Partager