如何设置mpdfHTML包含无效的UTF-8字符


how to set mpdf HTML contains invalid UTF-8 character(s)

当您在应用程序上创建pdf时,如何设置mpdfHTML包含无效的UTF-8字符

试试这个

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

调用之前:"$mpdf->WriteHTML($html);"

这看起来毫无意义,但对我来说有效。

使用mpdf,转换和编码没有意义,因为这些很可能会丢失您的字符,您只会得到"?"或其他无法识别的字符(但会产生输出)

在将任何输入发送到mpdf:之前,请尝试使用这些

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

这对我有效:

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

使用utf8_encode()函数。例如:$html='

发起人名称

发起人地址

发起人电话号码

发起人电子邮件

借款人

物业地址

GFE 日期

 

';$html=utf8_encode($html1);

下面两行将完成

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

在创建对象后添加以上两行,这将看起来像

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

经过数小时的拔发,这对我来说产生了奇迹:)

(就我而言बोटोक्स显示为???)

$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');

我的PDF包含英语和印地语单词的混合体,如

"3个单位बोटोक्स定价为10.00美元/单位"。

这对我有效:

使用

autoScriptToLang=true
autoLangToFont=true;

    include("mpdf-6.0.0/mpdf.php");
    $mpdf = new mPDF('c', 'A4', '', '', 0, 0, 0, 0, 0, 0);
    
    $mpdf->autoScriptToLang = true;
    $mpdf->autoLangToFont   = true;
    $mpdf->WriteHTML($html);
    $mpdf->Output('SavePDF.pdf', 'D');

我敢肯定这个问题是因为您使用unicode不安全的函数对文本进行了一些操作。使用mb_strpos()/mb_substr()而不是strpos()/substr(),并在所有使用prog_replace()的转换中添加"/u"修饰符。

当然,这个问题可以通过允许"字符集转换"来解决,正如前面已经建议的那样。但最好知道您的文本已经正确并且符合UTF-8的要求。

我在将NULL发送到->multicell()时收到此错误。发送""修复了它。