dompdf特殊字符显示问号?

时间:2016-08-02 11:13:38

标签: encoding utf-8 character-encoding dompdf

我使用dompdf 0.5.1生成PDF文件。但是特殊字符没有正确显示。

例如,Enter image description here

在生成的PDF文件中显示– “之类的内容。

我使用了UTF-8编码 HTML页面中的<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />由dompdf呈现。

在将它发送到dompdf之前我也使用了编码,比如 $dompdf->load_html(utf8_decode($html));

但是我得到?标记而不是上面的字符。

如何解决上述问题?

1 个答案:

答案 0 :(得分:1)

Dompdf 0.5.1对Windows ANSI编码不支持的字符的支持有限。如果您需要支持这些字符,则应至少更新为Dompdf 0.6.2。虽然我建议你尽可能使用Dompdf 0.7.0

您需要提供支持角色的字体(请参阅Unicode How-To),但只要您不尝试渲染CJK字符,就可以依赖包含的DejaVu字体。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <style>
    * { font-family: DejaVu Sans, sans-serif; }
  </style>
</head>
<body>
  <p>—</p>
</body>
</html>

此外,您永远不会使用utf8_decode(),因为它会破坏性地转换为iso-8859-1编码。通过破坏性的意思,它会改变它不能直接转换为iso-8859-1的字符(?)。