Bonjour Spippu,
Je suis passé de la version 3.31 à la version 4.01 de html2pdf, mon application est entièrement en UTF8 comme la librairie PDF, cependant j'ai un problème bizarre.
J'ai un problème au niveau des caractères accentués MAIS uniquement avec le "à".
Quand j'écris ça "é-è-à-ç-ù" dans la base et que je l'affiche, j'ai ça "é-è--ç-ù".
Pour l'affichage je n'utilise pas de fonction utf8 encode car mes données (en bdd) sont déjà en utf8.
D'où ça peut venir ?
Cordialement,
ps : ma version de php 5.1.6
Ok merci de ta réponse, je suis sur PHP 5.1.6 sur Windows effectivement ^^
Par contre, dans mes pages, je peux l'afficher correctement ce "à".
Cela concerne t il uniquement la création des PDF ?
Je ne peux pas upgrader la version PHP (ma version doit etre compatible pour une base de données mysql 4.x + phpmyadmin.
J'ai remis la version 3.31 et ça marche correctement en attendant un retour de ta part.
Spipu Le 01/12/2010 à 12:10 ben il n'y a pas de correction possible, car cela vient du natif de php : les fonctions de conversion de charset vers UTF8 PHP déconnes sous windows.
tu peux faire directement des essaies dans une simple page php, avec des utf8_decode, utf8_encode, et htmlentities en UTF8, tu vera que les à disparaissent...
y'a aucun workaround comme réécrire sa fonction?
Spipu Le 01/12/2010 à 14:53 surement que si, mais il n'y a pas que cette fonction d'impacté, il y en a beaucoups... et vu que PHP et Apache sous windows ont toujours été instables, et qu'il a toujours été déconseillé d'avoir un serveur de prod sous Windows...
le problème du caractère accentué 'à' est toujours présent (version 4.03) avec certaine versions ancienne de PHP.
il faut ajouter le modifieur Unicode (u) à l'utilisation de preg_replace.
PATCH : modifier la fonction _prepareTxt du fichier parsingHTML.class.php :
if ($spaces) $txt = preg_replace('/\s+/is', ' ', $txt); devient if ($spaces) $txt = preg_replace('/\s+/uis', ' ', $txt);