Chinaunix首页 | 论坛 | 博客
  • 博客访问: 324956
  • 博文数量: 23
  • 博客积分: 3071
  • 博客等级: 中校
  • 技术积分: 485
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-18 20:03
文章分类

全部博文(23)

文章存档

2012年(1)

2010年(9)

2009年(5)

2008年(8)

我的朋友

分类: LINUX

2009-02-13 19:10:07

为了处理接口上的一些数据,方便自己测试,研究了一下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) |
0

上一篇:Grub密码管理

下一篇:改变ubuntu运行级别

给主人留下些什么吧!~~