我们书接上回,继续来说乱码的问题。我也是好久没在centos上操作了,一时间也是翻看各种资料。
其实已经在本地和测试服务器都试过了,是没问题的,但是后来在一个cocker里运行,发现乱码,想必是这个docker有什么问题吧。
1、先是设置了docker的容器编码格式,重启服务,发现不行;
2、设置phantom的编码格式,网上有说:phantom.outputEncoding="GBK"
; 但是这个不是node里的方法,应该是页面上会这么用,乱码不是应该用utf8吗,无所谓了,反正是不行;
3、反思phantom的原理,是在一个无头浏览器运行一个html,页面乱码自然是跟页面编码有关,既然都是支持utf8的,那么乱码肯定是因为字体库了。通过fc-list
命令查看字体库,发现果然只有默认的一中字体。
1 2 |
yum install bitmap-fonts bitmap-fonts-cjk //在centos中执行 sudo apt-get install xfonts-wqy //在ubuntu中执行 |
一般都能找到这个答案,但是实际上我并没有成功。插个题外话,新docker没有yum命令,运行报错:-bash: yum: command not found
。当我查这个问题的时候,都是去163的镜像去西崽rpm包,然后安装,步骤很详细,但是呢,我连镜像都打不开,果然实践才是检验真理的唯一标准。
我是直接下载了字体包:http://a.xzfile.com/down1/MicrosoftYaHeiBold_downcc.zip,然后解压
1、yum -y install fontconfig,安装字体库配置;
2、首先在/usr/shared/fonts目录下新建一个目录chinese/TrueType;
3、把ttf文件丢进去
4、修改权限:chmod -R 755 /usr/share/fonts/chinese;
5、建立字体缓存:cd /usr/share/fonts/chinese/TrueType; mkfontscale; mkfontdir; fc-cache -fv
有一些资料说要install ttmkfdir
和 编辑/etc/fonts/fonts.conf
,实际上我并没有这么做,我遇到的问题是我把ttf放进去后并没有生效,后来把文件名中的空格都去掉后运行正常了。
这时候再fc-list
查看的时候发现就列出了自己新加的字体
参考:
https://jingyan.baidu.com/article/cb5d61050041fa005c2fe003.html