2016-02-21 1 views
0

J'ai un site php où j'exporte des données dans un fichier pdf. Le site utilise fpdf pour créer le fichier pdf mais certains caractères spéciaux ne sont pas corrects dans le fichier pdf créé.convertir des caractères spéciaux avec html_entity_decode ne fonctionne pas

Example of the error

La chose la plus délicate est que certains caractères spéciaux sont correctement imprimés tandis que d'autres ne sont pas. Le fichier default_charset du site est "iso-8859-1" et les fichiers php sont codés en "ANSI". J'ai également imprimé le tableau avec l'information (que je reçois de la base de données) et c'est ok. Donc, je suppose que c'est quelque chose avec le fpdf? Mais il est étrange que le même caractère spécial soit imprimé correc- tement à certains endroits et incorrectement dans d'autres.

Merci :)

EDIT:

Je l'ai découvert qu'il est dans ce morceau de code que les cordes vont mal encodée:

foreach ($this->relatorioData['Roteiro'] as $label => $value) { 
      $this->Cell(55, 4, html_entity_decode($label), 0, 0, 'L', false); 
      $this->Cell(95, 4, html_entity_decode($value), 0, 1, 'L', false); 
     } 

Les cordes sont bien jusqu'à ce que le html_entity_decode où seulement certains d'entre eux perdent les caractères spéciaux. Savez-vous ce que pourrait faire cela? Dois-je utiliser une autre méthode?

Répondre

0

Eh bien, j'ai trouvé ma réponse. Je avais besoin de changer cela:

html_entity_decode($text) 

à ceci:

html_entity_decode($label, ENT_COMPAT, 'ISO-8859-1') 

De cette façon, tous mes stringd ont été décodés à droite.