Se connecter / S'enregistrer
Votre question

[PHP] [GD] - pb affichage accents avec imagestring ();

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
24 Janvier 2010 19:03:17

Bonjour à tous,

Je poste au sujet de l'affichage de lettres accentuées grâçe à la librairie GD.
J'utilise php 5.2.6 et la librairie GD version 2.

Contexte du bug:


J'ai un formulaire sur une première page qui permet à l'utilisateur de saisir un texte qui sera ma future variable "$chaine". Cette page est encodée en UTF8.
Lors de l'envoi du formulaire vers la page php traitant les infos,
je récupère la variable $_POST['chaine']; et demande à GD d'imprimer cette variable dans une image.
Pour cet impression écran, j'utilise la fonction imagestring:

  1. <?php
  2. header("Content-type: image/png");
  3. $image = imagecreatetruecolor(400,600);
  4.  
  5. $color = "BEDFFE";
  6. $rouge = hexdec(substr($color,0,2));
  7. $vert = hexdec(substr($color,2,4));
  8. $bleu = hexdec(substr($color,4,6));
  9. $couleur = imagecolorallocate($image,$rouge,$vert,$bleu);
  10.  
  11. if (isset($_POST['chaine']))
  12. {
  13. $string = $_POST['chaine'];
  14.  
  15. imagestring($image, 5, 20, 50, $string);
  16. }
  17.  
  18. imagepng($image);
  19. imagedestroy($image);
  20. ?>


  1. Voiçi mon souçi:


Cela fonctionne très bien pour les caractères alphabétiques et les caractères spéçiaux, mais pose un problème avec les lettres accentuées.
En effet, le caractère "é" est affiché "Ǎ Š" et "à" sera affiché " Ǎ ¨ "

Je pense donc que le problème vient de la fonction imagestring , qui réencode ma variable dans je ne sais pas trop quel encodage.. Ma variable étant sensée être en UTF8 ( elled'une page UTF8)

Cliquez sur cette page php de test pour vous rendre compte en image. Tapez une lettre accentuée ( éèàç) et validez le formulaire..

Comme vous pouvez le voir, si j'utilise la fonction imagettftext (), les accents passent, mais pas avec la fonction imagestring () ...

Question:
Quelqu'un connait t il la norme d'encodage typo utilisée par la fonction imagestring() ?


Merci à tous ! Alex.
Si ça vous parle, votre aide est la bien venu !

Alex, étudiant à l'école supérieure des arts décoratifs de Strasbourg.

Autres pages sur : php affichage accents imagestring

a b L Programmation
25 Janvier 2010 19:57:39

Visiblement, ce n'est qu'un codage Latin-1, non ?
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS