PHP utf-8 issue


PHP utf-8 issue

我使用pdf生成器类(TCPDF)从一些html生成pdf文件。问题是html文本有一些utf8和unicode字符。该类支持这些字符。

我已经做了设置,所有工作都很好在本地主机上。但是当我把文件上传到我的网络主机时,我得到一个白页面。我使用完全相同的代码

如果我删除unicode和utf-8字符,它可以工作。我已经复制了脚本,但在服务器上它不工作。php是否有处理这些字符的设置?php。ini里的东西?谢谢你

除了确保PHP安装了mbstring扩展名外,还要确保在脚本mb_internal_encoding('UTF-8');或PHP .ini中设置了PHP的编码。

还需要确保在TCPDF中指定的字体支持UTF-8字符。多年来,我在这方面遇到了很大的问题,最终决定使用与TCPDF捆绑在一起的Freesans和Freeserif字体。

同样,在实例化TCPDF类时,确保已经设置了类构造函数的第4和第5个参数。如果省略,它们应该默认为TRUE, UTF-8,但我总是指定以确保。

$pdf=new PDF('P', 'mm', 'A4', TRUE, 'UTF-8');
$pdf->SetPageOrientation('P', FALSE, $margin_v);
$pdf->SetMargins($margin_h, $margin_v, $margin_h, TRUE);
// USE BUNDLED freesans FONT FOR DECENT UTF-8 SUPPORT
$pdf->setFontSubsetting(TRUE);
$pdf->SetFont('freesans', '', 11);

查看TCPDF构造函数的文档