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的字符变成问号(?)。
ʼn
(相当于英语中的a
)输出为?
。当然,我忘记了laravel的{{ }}
转义字符,所以我改成了{!! !!}
,这解决了一些ʼn
字符的问题。我复制了一份文本从我收到的PDF文件插入到了一个站点上,该PDF文件具有ʼn
字符的编码,无法转换。当然,解决方案是将ʼn
字符变成两个字符,即一个撇号和字母n
,即'n
。 - Hmerman6006