phantomjs中文问题 [后续]

之前写过一篇文章:phantomjs中文问题

里面的解决办法也是碰巧,如今将解决问题之所在。

# 列出所有已经安装的中文字体,如果还没有安装中文字体,可参考上文提到的文章。
fc-list :lang=zh
# 宋体,SimSun:style=Regular

# 看下字体是怎么走的
fc-match Arial -s
# SimSun.ttf: "SimSun" "Regular"
# n019003l.pfb: "Nimbus Sans L" "Regular"
# cursor.pfa: "Cursor" "Regular"
# d050000l.pfb: "Dingbats" "Regular"
# s050000l.pfb: "Standard Symbols L" "Regular"
# 哎呀,是对的呀,为什么phantomjs不认呢,(ÒωÓױ)

# 查看下本地语言设置
locale
# LANG=zh_CN.UTF-8
# LC_CTYPE=zh_CN.UTF-8
# LC_NUMERIC="zh_CN.UTF-8"
# LC_TIME="zh_CN.UTF-8"
# LC_COLLATE="zh_CN.UTF-8"
# LC_MONETARY="zh_CN.UTF-8"
# LC_MESSAGES="zh_CN.UTF-8"
# LC_PAPER="zh_CN.UTF-8"
# LC_NAME="zh_CN.UTF-8"
# LC_ADDRESS="zh_CN.UTF-8"
# LC_TELEPHONE="zh_CN.UTF-8"
# LC_MEASUREMENT="zh_CN.UTF-8"
# LC_IDENTIFICATION="zh_CN.UTF-8"
# LC_ALL=


# 嗯,据说 QT 在对“宋体,SimSun:style=Regular”处理的时候是有问题的
export LC_CTYPE=en_US.UTF-8
fc-list :lang=zh
# SimSun,宋体:style=Regular
# 换了个顺序,试试...,呵呵,phantomjs中文的问题解决了 - - |||

因为不需要全局修改LC_CTYPE,所以在命令前面加一下就好了。为了方便写个alias

alias casperjs='LC_CTYPE=en_US.UTF-8 casperjs'

标签: none

仅有一条评论

  1. 我这边的状况——
    系统:Debian 7.5
    软件:phantomjs 1.9.8
    issue:除了ukai其他中文字体一概不认,应该是QT读取默认字族字体问题。
    solution:
    在html页面中直接指定字族:font-family: 'micro yahei' 解决。

添加新评论