Le use encoding n'a eu aucun effet, et d'après ce que j'ai lu, ça joue sur l'encodage du script,et non l'encodage du retour de la commande.
Cependant, j'ai réussi à avoir un résultat à peu près potable, mais avec un point que je ne comprends pas.
Primo, j'ai mis mon script en UTF-8 (il était en LATIN1).
Secundo, j'ai mis le binmode de la commande en utf8 :
Code :
- my $com = "df -h";
- open COM, "$com|";
- binmode COM, ":utf8" or print "Erreur : $!";
- my @lines = <COM>;
- close COM;
|
Enfin, je joue sur la sortie CGI pour avoir le bon encoding dans le fichier HTML :
Code :
- my $cgi = new CGI;
- print $cgi->header('Content-type: text/html; charset=utf-8');
- print "<html>";
- print "<head>";
- print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
- print "</head>";
- print "<body>";
- ...
|
Alors les 2 lignes indiquant le charset sont obligatoires. Avec une seule ça ne marche pas.
J'ai beau avoir des notions de Perl, je ne connais pas du tout l'utilisation de perl en CGI, donc je n'ai pas d'explication à donner. Je suis preneur de toute explication, histoire de me coucher moins con...
Merci pour ta réponse en tout cas