dompdf特殊字符显示问号?

dompdf special character showing question mark?

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

例如.

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

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

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

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

如何解决上述问题?

Dompdf 0.5.1 对 Windows ANSI 编码不支持的字符的支持有限。如果您需要支持这些字符,您应该至少更新到 Dompdf 0.6.2. Though I'd recommend using 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。