web-dev-qa-db-fra.com

comment définir mpdf HTML contient un ou plusieurs caractères UTF-8 non valides

comment définir le format mpdf HTML contient un ou plusieurs caractères UTF-8 non valides lorsque vous créez un fichier PDF sur vos applications

9
debasish

Essaye ça

$html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');

avant d'appeler: "$ mpdf-> WriteHTML ($ html);"

Cela semble insensé, mais cela fonctionne pour moi.

22
MoxFulder

Avec mpdf, les conversions et l’encodage ne servent à rien, ceux-ci risquent de perdre vos caractères et vous n’obtenez que "?" ou d'autres caractères non reconnaissables (mais généreront un résultat)

Essayez de les utiliser avant d’envoyer des données à mpdf:

$mpdf->allow_charset_conversion=true;
$mpdf->charset_in='UTF-8';
3
Runaurufu

Utilisez la fonction utf8_encode (). Par exemple: $ Html = '

Nom de l'auteur

Adresse de l'expéditeur

Numéro de téléphone de l'expéditeur

Email de l'expéditeur

Emprunteur

Adresse de la propriété

Date de GFE

UNE 

'; $ html = utf8_encode ($ html1);

2
debasish

Les deux lignes ci-dessous feront l'affaire 

$mpdf->allow_charset_conversion = true;
$mpdf->charset_in = 'iso-8859-4';

Ajoutez les deux lignes ci-dessus après la création de l'objet, cela ressemblera à

$mpdf=new mPDF();
$mpdf->allow_charset_conversion = true;
$mpdf->charset_in = 'iso-8859-4';
1
user3408779

Cela fonctionne pour moi:

$mpdf->WriteHTML(utf8_encode($html));
1
Erik

Après des heures d'arrachage de cheveux, cela a fonctionné à merveille pour moi :)

(Dans mon cas, était affiché comme ??????)

$ mpdf-> SetAutoFont ();

$mpdf = new mPDF('utf-8','', 0, '', 15, 15, 16, 16, 9, 9, 'L');
$mpdf->SetAutoFont();

//~ Nothing of below worked :(
//~ $mpdf->useLang = true;
//~ $mpdf->autoScriptToLang = true;
//~ $mpdf->autoLangToFont = true;
//~ $pdf_html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');

$mpdf->WriteHTML($html);
//~ $mpdf->DeletePages(2);
$filename   = date('ymdhis').".pdf";
$mpdf->Output($filename,'D');

Mon PDF comprenait un mélange de mots anglais et hindi tels que

"3 unités de बोटोक्स au prix de 10,00 $/unité".

0
Sudhir

J'ai eu cette erreur lorsque j'envoie NULL à ->multicell(). L'envoi de "" l'a corrigé.

vieille question, mais peut-être que quelqu'un vient ici de Google comme je l'ai fait

0
jab11