Ouvrir une commande en UTF-8 [RÉSOLU] - Perl - Programmation
Marsh Posté le 22-08-2008 à 10:08:36
use encoding et regarde aussi du coté de l'option -C de perlrun.
Marsh Posté le 22-08-2008 à 13:39:14
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 :
|
Enfin, je joue sur la sortie CGI pour avoir le bon encoding dans le fichier HTML :
Code :
|
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
Marsh Posté le 22-08-2008 à 14:05:10
Predicator a écrit : 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. |
Tout à fait, mais j'avais pas super bien compris le contexte. Tu noteras d'ailleurs que je te parlais de perlrun avec -C (qui lui règle STDIN/OUT) alors que tu te sers de perl en cgi.
Predicator a écrit : 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 |
Ton pb ne venait pas du perl mais de l'affichage dans le navigateur.
Par défault ( il me semble que) cgi/perl encode en latin1, et afficher de l'utf8 en latin donne un résultat... pas terrible.
Quoi qu'il en soit tout mettre dans le même encoding est une très bonne solution, une autre étant de se servir de Encode par exemple.
Marsh Posté le 22-08-2008 à 14:21:36
Le manque d'explication que j'ai, c'est sur pourquoi les deux lignes sont obligatoires, alors qu'elles font à priori la même chose...
D'ailleurs, j'ai eu un effet de bord assez marrant. En écrivant n'importe quel texte avant le code HTML dans la sortie, l'affichage était correct, même sans les deux lignes...
Y'a des choses masquées quand même
Marsh Posté le 22-08-2008 à 19:50:59
Predicator a écrit : Bonjour,
|
Il me semble qu'il faut faire ce genre de chose:
Code :
|
A+,
Marsh Posté le 21-08-2008 à 17:43:11
Bonjour,
J'essaye de lancer une commande, tout en récupérant le résultat pour une exploitation ultérieure...
Voici ce que ça donne en très simple :
Le problème est que le résultat de la commande contient des caractères unicode... Je voudrais donc récupérer le contenu au bon format...
Pour lire un fichier, il suffit de faire :
Mais on ne peut pas le faire pour une commande, j'ai essayé ces deux variantes :
mais sans succès...
Quelqu'un sait comment résoudre mon problème ?
Merci d'avance...
Message édité par Predicator le 22-08-2008 à 13:41:42