我使用dompdf 0.5.1生成PDF文件。但是特殊字符没有正确显示。
在生成的PDF文件中显示– “
之类的内容。
我使用了UTF-8编码
HTML页面中的<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
由dompdf呈现。
在将它发送到dompdf之前我也使用了编码,比如
$dompdf->load_html(utf8_decode($html));
。
但是我得到?
标记而不是上面的字符。
如何解决上述问题?
答案 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的字符(?)。