[php]imagettftext et caractères accentués.

imagettftext et caractères accentués. [php] - PHP - Programmation

Marsh Posté le 31-08-2010 à 14:38:13    

Bonjour
 
Je génére des images php ainsi :  
 

Code :
  1. <?php
  2. header ("Content-type: image/png" );
  3. $db = connect_bdd("..." );
  4. $sql = "SELECT id, site, nom, prenom, email ..." ;
  5. $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  6.  
  7.   if (mysql_num_rows($req) > 0) {
  8. $resultat = mysql_fetch_object($req) ; 
  9. $nom=$resultat->nom ;
  10. $prenom=$resultat->prenom ;
  11. $email=$resultat->email;
  12. $site=$resultat->site;
  13. }
  14. $couleur_texte = imagecolorallocate($image, 75, 75, 75); // Texte en noir
  15. //( resource $image  , float $size  , float $angle  , int $x  , int $y  , int $color  , string $fontfile  , string $text  )
  16. // Définition de la variable d'environnement pour GD
  17. putenv('GDFONTPATH=' . realpath('.'));
  18. $gara = 'GARA.TTF';
  19. $garabd = 'GARABD.TTF';
  20. $garait = 'GARAIT.TTF';
  21. imagettftext($image, 11, 0, 78,95, $couleur_texte, $garabd,  $prenom." ".strtoupper(stripAccents($nom)));
  22. imagepng($image);
  23. }
  24. ?>


 
Mes tables sont en latin_1_swedich
 
Tous mes caractères accentués (potentiellement dans $prenom) apparaissent comme des "carrés".  
je n'ai pas de problème avec les accents dans mes pages html, mais là je galère.
Je suis bien sur allé voir la doc de fonction php,"imagettftext", qui indique que le texte doit etre passé en utf-8.
J'ai essayé de convertir mon champs "prenom" en utf (utf8_encode), ca n'a rien donné.
htmldecode ne donne rien, la fonction inverse me donne le code html des caractères accentués.
Je tourne en rond...
 
Une idée ?

Message cité 1 fois
Message édité par tuxbleu le 31-08-2010 à 14:53:37

---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 31-08-2010 à 14:38:13   

Reply

Marsh Posté le 31-08-2010 à 14:42:51    

tuxbleu a écrit :


J'ai essayé de convertir mon champs "prenom" en utf (utf8convert), ca n'a rien donné.


utf8_encode?

Message cité 1 fois
Message édité par skeye le 31-08-2010 à 14:43:07

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 31-08-2010 à 14:53:18    

skeye a écrit :


utf8_encode?


Oui excuse, je rectifie mon post, j'ai bien testé cette fonction


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 31-08-2010 à 16:48:45    

est-ce que ta base, ton charset HTML et l'encodage de ton fichier php sont dans le même encodage ?


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
Reply

Marsh Posté le 31-08-2010 à 19:15:38    

champs de la base de donnée concerné : latin_1_swedich
charset HTML : qu'es ce que ca peut faire ? Le header est pas de type texte sur cette page. sinon, pour mes pages de texte, où ca se passe bien, c'est du l'iso.
Mon fichier php ? Alors là je ne comprends carrement pas la question :/


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 31-08-2010 à 19:20:28    

bah ton fichier a son propre encodage, le problème peut venir de là. Perfo je fous tout en utf8, que ce soit la BDD, le charset HTML et l'encodage du fichier, ce qui fait que normalement tu n'as aucun souci.
 
Toutefois, vérifie l'encodage de ton fichier, ça vient surement de là.


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
Reply

Marsh Posté le 31-08-2010 à 19:24:21    

Alekusu2 a écrit :

bah ton fichier a son propre encodage, le problème peut venir de là. Perfo je fous tout en utf8, que ce soit la BDD, le charset HTML et l'encodage du fichier, ce qui fait que normalement tu n'as aucun souci.
 
Toutefois, vérifie l'encodage de ton fichier, ça vient surement de là.


tu vas surement halluciner, mais je fais ça comment  :??: (sur Microsoft)
 
J'ai essayé de passer mes champs de base de donnée en UTF-8 swedish, ca a rien changé.
 
J'ai fais une recherche sur google, on est nombreux à avoir ce genre de soucis on dirait.


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 31-08-2010 à 19:27:52    

perso mes tables sont en utf8_unicode_ci
tu codes avec quel soft ?


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
Reply

Marsh Posté le 31-08-2010 à 19:32:44    

Alekusu2 a écrit :

perso mes tables sont en utf8_unicode_ci
tu codes avec quel soft ?


Le seul, l'unique : bloc note :D


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 31-08-2010 à 19:35:03    

Je suis pas sous windows, regarde dans les paramètres du bloc note si tu peux pas modifier l'encodage


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
Reply

Marsh Posté le 31-08-2010 à 19:35:03   

Reply

Marsh Posté le 31-08-2010 à 19:38:57    

pour tout dire, ce qui me gave, c'est que ca tournait impec sur mon ancienne plateforme (windows aussi)
J'ai été contreint de changer de plateforme, j'ai copié mes sources html, mes bases, remonté un serveur apache / php / mysql.  
Et sur la nouvelle plateforme, ya que ca qui tourne pas :/


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 31-08-2010 à 19:40:10    

Je me demande si une version plus à jour de php ne pourrait pas provoquer ca.
Tu penses que je peux remplacer mon module gd actuel par celui de mon ancienne plateforme ?


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 01-09-2010 à 14:40:13    

Je pense que la piste se trouve sur le changement de version de php  :
 
http://forum.hardware.fr/hfr/Windo [...] m#t2959516


---------------
Mon topic de vente - Mon feed-back
Reply

Marsh Posté le 01-09-2010 à 16:46:31    

Ah mais attends, as-tu vérifié que ta typo contient bien les accents ? As-tu essayé avec une typo type arial ?


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
Reply

Marsh Posté le 01-09-2010 à 17:44:35    

Alekusu2 a écrit :

Ah mais attends, as-tu vérifié que ta typo contient bien les accents ? As-tu essayé avec une typo type arial ?


Comme je l'indiquais, j'ai repris toutes mes anciennes sources.
Je me servais donc de cette topo sur mon ancien serveur, ca roulait nikel.
 


---------------
Mon topic de vente - Mon feed-back
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed