【问题标题】:PHP utf-8 issuePHP utf-8 问题
【发布时间】:2011-11-30 22:12:48
【问题描述】:

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

我已经进行了设置,并且在 localhost 上一切正常。但是当我将文件上传到我的网络主机时,我得到一个白页。我使用完全相同的代码。

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

【问题讨论】:

  • ini_set('display_errors', 1); error_reporting(~0); 添加到脚本的顶部,如果找不到错误日志,请查找显示的错误消息。
  • 我在 joomla 平台上使用它。我遇到了一些错误,与我正在使用的文件没有任何关系。此外,没有 mb_
  • 可能是您使用“\”而不是“/”作为路径分隔符来包含您的库吗?这可以在 Windows 上运行,但在服务器上您应该使用 require_once('lib/tcpdf/tcpdf.php')
  • 但我没有从那方面得到任何错误。它在我删除 unicode characters 时起作用。 . .哦:(
  • 你是如何得到这个 unicode 字符的,你是把 php 文件保存为 UTF8 还是来自数据库查询?

标签: php unicode utf-8 character-encoding


【解决方案1】:

除了确保 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);

查看docs for the TCPDF constructor

【讨论】:

    猜你喜欢
    • 2011-06-05
    • 2011-04-02
    • 1970-01-01
    • 2015-12-06
    • 2011-06-16
    • 1970-01-01
    • 2012-04-11
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多