汉字显示为问号

时间:2015-04-05 14:03:03

标签: windows fonts phantomjs wkhtmltopdf

以前曾经问过,但我无法弄清楚出了什么问题。我正在使用phantomjs .render()打印pdf。

呈现的页面基本上是具有以下属性的本地静态站点:

  • <meta charset="UTF-8">
  • font: normal 17px helvetica,arial,verdana,sans-serif
  • 在本地Windows上运行和测试以及Azure Worker Roles
  • 从Chrome打印同一页面时安装并运行中文语言包(已安装的字体,例如Arial Unicode MS,SimSun ......)

拉丁字符都很好,只有中文字符显示为“?”

例如

我也只在Arial或SimSun中尝试了整个页面,但没有区别。

知道如何在Windows上运行吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你需要一个中文字体。它们都不属于中文字体系列。

  

font:normal 17px helvetica,arial,verdana,sans-serif

这里有一些字体有中文字符。

  

宋体:宋体;黑体:SimHei;新宋体:NSimSun;微软雅黑:微软雅黑;新细明体:PMingLiU

这不仅仅是指南。Chinese Standard Web Fonts: A Guide to CSS Font Family Declarations for Web Design in Simplified Chinese

这是繁体中文字体。Chinese web fonts

Google的字体。很抱歉没有链接,我有限制。

  

诺托的SAN-汉斯

Adob​​e的typekit

  

源涵SANS

测试Html文件:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>你好中文!</title>
    <style type="text/css">
        p.serif{font-family:"Times New Roman",Georgia,Serif}
        p.sansserif{font-family:SimSun}
        p.s1{font-family: 黑体}
        p.s2{font-family: KaiTi}
        p.s3{font-family: Microsoft YaHei}
    </style>
</head>

<body>
    <div>
    <p class="serif">你好中文!111</p>
    <p class="sansserif">宋体</p>
    </div>
    <div>
        <p class="s1">黑体</p>
        <p class="s2">楷体</p>
        <p class="s3">微软雅黑</p>
    </div>
</body>
</html>

结果

enter image description here

最不胜相的是,尝试将您的位置更改为中国。我不希望这个工作,因为我在win10 ENG预览中尝试了phantomjs,效果非常好。控制面板&gt;区域&gt;行政&gt;非Unicode程序的语言

enter image description here