在折腾这几天之后,终于算是差不多搞清楚linux、vim中字符编码的机制。
开始我的~/.vimrc文件是在默认情况下编辑的,使用的是UTF-8字符集。这个文档我参照网上的一些文章有几项关于字符编码的设置:
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gbk
set fileencoding=utf-8
set termencoding=utf-8
并有一些相应的中文注释。
前段时间由于NLP作业要将读写中文文档,老师给的文档都是在windows中生成的,因此基本都是GBK等编码,而我用的linux系统默认是UTF-8字符集。因此用gedit打开的时候开始是乱码,vim并不是乱码。
因此我将locale修改了。 在/env/enviroment中加了一行LC_CTYPE="zh_CN.GBK".重启之后NLP的文档已经不是乱码了。但是当我再次打开~/.vimrc这个文档的时候,发现里面的中文注释都已成乱码。思索半天,在将encoding 和termencoding这两个值设置成gbk时乱码消失。很奇怪的是当LC_CTYPE设为默认值时,encoding这两个值只要相同,都不会出现乱码。