为了处理接口上的一些数据,方便自己测试,研究了一下vim的字符集。
以下是自己对vim字符集编码方式的一点了解。
下面的配置基于~/.vimrc
encoding = utf8 //vim buffer的字符集,这个需要和你的locale一致,不然打开的中文将会乱码。
未设置情况下根据你的locale选择。
fileencoding: Vim中当前编辑的文件的字符编码方式,文件保存将按这个格式保存。这个参数会在文
件被打开时被fileencodings动态改变。在底行模式可以通过 :set fileencoding 改变就
要保存的格式。
fileencodings: 这个参数是Vim自动探测的的列表, 打开文件时会按照它所列出的编码逐一探测文件的
字符编码,并且将 fileencoding
设置为最终探测到的字符编码方式!
如:set fileencodings=utf8,gbk,gb18030
整个流程:
1. Vim 启动,根据 .vimrc 中的 encoding 的值来设置 buffer等。
2. 读取需要编辑的文件,根据 fileencodings 中的字符编码逐一探测该文件编码方式,并设置fileencoding 。
3. 对比
fileencoding和encoding 的值,若不同则调用 iconv 将文件内容转换为encoding设置的字符编码方式,并且把转换后的内容放到为此文件的 buffer 里。
4.
编辑完成后保存文件时,再次对比 fileencoding和encoding 。若不同,则再次调用 iconv 将即将保存的 buffer
中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。
另外看下locale编码。
#locale -a // Write names of available locales.
我们可以在
#vi /var/lib/locales/supported.d/local
中添加需要支持的编码如:
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN.GB18030 GB18030
zh_CN.GB2312 GB2312
再执行# locale-gen // compile a list of locale definition files
然后我们可以通过 #LANG=xxx 临时改变成local -a列表里的字符集。
阅读(4487) | 评论(0) | 转发(0) |