Bonjour à tous,
Je dois mettre à jour un site web en Perl.
Un des scripts contient un formulaire qui appelle un autre script qui crée un graphe en utilisant les modules :
- GD;
- GD::Graph::lines;
Le graphe créé est récupéré dans un iframe de la page appelante. Jusque-là ça fonctionne...
Le seul problème vient des légendes du graphe. Certains mots contiennent des accents. Ci-dessous, un extrait du code utilisé pour faire les légendes avec le module GD.
Or le "e" accent grave du mot pièces s'affiche bizarrement. Je précise que mes fichiers sont en utf8, que le charset des pages est renseigné en utf8. Je travaille sous Windows XP et wamp pour les tests et Windows serveur pour la production.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $graph = GD::Graph::lines->new(400, 350); $graph->set( x_label => 'nombre de pièces produites', ... );
J'ai essayé d'utiliser le module Encode avec différents encodages, rien n'y fait, les caractères sont toujours mauvais.
J'ai essayé un autre bidouillage, en définissant des varibiables qui contiennent le format unicode des caractères accentués et en concaténant ces variables dans la légende des graphes, le code ressemble à ça :Il s'avère que cela fonctionne pour tous les caractères accentués testés SAUF pour ce "e" accent grave où le caractère affiché est un č.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 my $e_grave = "\x{00E8}"; $graph->set(x_label => 'nombre de pi'.$e_grave.'ces produites');
Y a-t-il une meilleure méthode de travail ? Ou y a-t-il un solution pour ce "e" accent grave ?
Partager