Aller au contenu

MacRicow

Membre
  • Compteur de contenus

    1
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre
  1. Justement, 20AC n'est pas à proprement parler un «code numérique», mais un code alphanumérique qui représente un nombre en base 16. Pour info, un code hexadécimal doit être représenté sous la forme 0x20AC, pour éviter la confusion (même si dans le cas présent la présence de lettres dans le nombre suffit à mettre la puce à l'oreille). Résolution tardive de l'énigme soumise par MarvinLeRouge (tout vient à point à qui sait attendre) : 8364 est juste la version décimale de 0x20AC : (12x1)+(10x16)+(0x256)+(2*4096)=12+160+8192=8364 Toutefois, confronté au même problème du signe euro avec imagettftext, je n'ai pas trouvé la solution ici (sans doute du fait d'une configuration différente). Alors, si ça peut aider quelqu'un, je suis parvenu à afficher le signe euro en passant par le code suivant : $prix="20.50"; $euro=utf8_decode(html_entity_decode('',ENT_NOQUOTES,'UTF-8')); $prix = preg_replace('/\./',$euro,$prix); [...] imagettftext($im,$taillePolice,$angle,$x,$y,$couleur,$police,$prix); Précision : le fichier php contenant ce code est encodé UTF-8... Et les manipulations de chaînes avec les commandes php sont un peu plus tortueuses (beaucoup d'entre elles n'acceptent pas l'UTF-8)... Contrairement à ce qu'on pourrait penser, le fait d'avoir des pages encodées en UTF-8 ne facilite pas le travail. Un simple $euro="" ne suffit pas (testé sans succès avec plein de polices différentes). Si votre page est en iso-8859-1, du coup, vous pouvez vous essayer le code suivant : $prix="20.50"; $euro=chr(128); $prix = preg_replace('/\./',$euro,$prix); [...] imagettftext($im,$taillePolice,$angle,$x,$y,$couleur,$police,$prix); Je ne garantis pas le fonctionnement dans toutes les configurations, mais ce code fonctionne sur mes serveurs alors qu'un $euro=chr(8364) ne fonctionne pas. Configs testées : PHP 5 sous Gentoo et RedHat
×
×
  • Créer...