学习vim之路

字符集研究(VIM版本)

 

以前我曾经发贴说,VIM看汉字是乱码,当时我说的是ssh连接乱码,最后是通过更改服务器的language来解决的。
taobaoDBA的陶方则研究的比较深入,他认为:无论字符串采用了什么字符集,在内存和文件中的存储形式都是二进制的。出现乱码的原因是解释并显示二进制数据的字符集和产生二进制数据的字符集不能兼容引起的。

 

http://rdc.taobao.com/blog/dba/html/275_vim_charset_researc.html 写道

字符集转换是个很麻烦的事情,特别是数据库的字符集转换,涉及到了很多细节。
为了引出更多的讨论,我这先抛个砖头,是关于vim编码的问题,希望大家看完能有所收获。

1、无论字符串采用了什么字符集,在内存和文件中的存储形式都是二进制的。出现乱码的原因是解释并显示二进制数据的字符集和产生二进制数据的字符集不能兼容引起的。
2、从一个字符集转换到另外一个字符集是可以做到的,但是必须要有代码去实现这个转换。有些时候是显式转换,有些时候是隐式转换。vim属于显式转换。

vim有三个编码参数,分别是fileencoding(或fileencodings)、encoding、termencoding,根据字面理解, 分别代表了文件的编码格式、缓存的编码格式、终端的编码格式。fileencoding和encoding不一致的时候,缓存中的数据会进行一次字符集转 换,然后存入磁盘。当encoding和termencoding不一致的时候,缓存中的数据也会进行一次转换,然后以字节流的形式传给终端。终端 (TTY)和伪终端(PTS)都有自己的编码格式。Linux的LANG即是TTY的编码格式,SecureCRT的字符集设置即是PTS的编码格式(无 论是ssh和是telnet都一样)。如果不指定fileencoding、encoding、termencoding的编码格式,那么vim将会读取 操作系统的字符集设置。实际上,只要正确设置这三个参数和SecureCRT,操作系统的字符集是不会影响远程查看和编辑文件(什么,你用emac?-。 -b)。

--EOF--

 

插入一个 putty: http://www.cnblogs.com/me-sa/articles/2077682.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值