雁起平沙的网络日志

数量金融与R

在Windows下使用jekyll如何避免出现中文字符集错误

| Comments

在windows下使用jekyll时经常会遇到字符集错误,比如遇到提示Liquid error: incompatible character encodings: UTF-8 and GBK。本文将介绍几种解决方案。

1. 修改bash的字符集:C:\Documents and Settings\用户名下,找到文件.bash_profile,后面加两行

1
2
set LC_ALL=en_US.UTF-8
set LANG=en_US.UTF-8

2. 所有文档使用utf-8无BOM格式

在Windows下新建的文本文件默认是ANSI格式的,而jekyll只认utf-8。如果遇到ANSI格式编码的文件,可以在notepad++中转换,如下图:

转换为utf-8编码

3. 使用Unix换行符

可以在notepad++中转换,如下图:

转换为Unix换行符

这里有个技巧,在notepad++中,可以开启“显示所有字符”选项,这样就可以看出文档用的是Windows的换行符还是Unix的换行符。

显示所有字符

在这种模式下,Windows的换行符显示的是CR,Unix的换行符显示的是LF

4. 新建文档的时候就注意到前两条

设置–>首选项里,如下设置 新建文档设置

5. 注意YAML头部的格式

模板文件的元数据以YAML的格式展现,YAML头部经常会出现三个问题:(1)三短线前面不能有空格;(2)“名: 值”对里冒号后面要有空格;(3)回车后不要有Tab符;(4)表示数组成员开始的-号后面要有空格

在notepad++中开启“显示所有字符”选项后,就可以看清空格和Tab符了,下图是很规范的例子 yaml头部

尤其是Tab符,不借助工具很难跟空格区分,下图那个向右箭头的符号就是Tab符,这是个错误的例子,应该把Tab符删除,改为用空格缩进

带Tab符的YAML头部

正确的应该是这样,-号后面都有空格

不带Tab符的YAML头部

Comments