部分文字在网站上的呈现效果不正确。
来自浏览器:
来自phantomjs:
机器:Fedora 64位
Phantomjs版本:1.9.7
已安装的依赖项:
在另一个Windows平台上工作正常,只有Linux环境问题。我错过了什么?
答案 0 :(得分:0)
我遇到了phantomjs和特殊字符(日语,中文,印地语等)的字体渲染问题,这就是我解决问题的方法:
下载相应的.ttf
Unicode fonts文件。网上有几个免费网站,但你有几个Unicode字体免费文件可用于几个不同的角色地图here。
将.ttf
文件保存在目录/etc/fonts
或目录~/.fonts
中的服务器/计算机中。后者也是一个unix目录,如果它不存在,则创建它,如果你没有root权限就需要它(例如共享服务器)
相应地运行fc-cache -fv /etc/fonts
或fc-cache -fv ~/.fonts/
。此fc-cache命令扫描系统上的字体目录并构建字体信息缓存文件
然后在phantomjs代码中,始终使用utf-8
文件系统
var HTMLfile = fs.open(path + file_name, {
mode: 'r', //read
charset: 'utf-8'
});
var content = HTMLfile.read();
HTMLfile.close();
或网页
var webPage = require('webpage');
var page = webPage.create();
var settings = {
operation: "POST",
encoding: "utf8",
headers: {
"Content-Type": "application/json"
},
data: JSON.stringify({
some: "data",
another: ["custom", "data"]
})
};
经过长时间的搜索,它对我有用。