[问题]vim编码的问题

Vim、Emacs配置和使用
回复
sailershen
帖子: 225
注册时间: 2008-04-08 13:24

[问题]vim编码的问题

#1

帖子 sailershen » 2008-06-23 11:37

我已经在.vimrc文件里设置了编码:

代码: 全选

set fenc=gb2312
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
但是我用vim打开中文文档的时候,中文仍然显示成乱码,但是用cat命令显示文件内容的时候中文显示正常。

console本身的编码是gb2312:

代码: 全选

set |grep LANG
GDM_LANG=zh_CN.gb2312
LANG=zh_CN.gb2312
请问如何解决?
谢谢!
头像
ibear
帖子: 787
注册时间: 2006-10-19 8:43
来自: 长江口

Re: [问题]vim编码的问题

#2

帖子 ibear » 2008-06-23 12:23

sailershen 写了:我已经在.vimrc文件里设置了编码:

代码: 全选

set fenc=gb2312
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
但是我用vim打开中文文档的时候,中文仍然显示成乱码,但是用cat命令显示文件内容的时候中文显示正常。

console本身的编码是gb2312:

代码: 全选

set |grep LANG
GDM_LANG=zh_CN.gb2312
LANG=zh_CN.gb2312
请问如何解决?
谢谢!
试试“set fencs=gb18030,gbk,gb2312,cp936,utf-8,usc-bom,euc-jp”
sailershen
帖子: 225
注册时间: 2008-04-08 13:24

#3

帖子 sailershen » 2008-06-23 14:31

谢谢
我是这样解决的,在.vimrc里增加:

代码: 全选

let &termencoding=&encoding
set fileencodings=gbk,utf-8,ucs-bom,cp936 
又修改一行:

代码: 全选

set  encoding=gb2312
然后在vim里就能正常显示gb2312编码的文字了。

另外还export locale=gb2312
poet
帖子: 2841
注册时间: 2006-09-11 22:47

Re: [问题]vim编码的问题

#4

帖子 poet » 2008-06-24 10:37

sailershen 写了:我已经在.vimrc文件里设置了编码:

代码: 全选

set fenc=gb2312
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
但是我用vim打开中文文档的时候,中文仍然显示成乱码,但是用cat命令显示文件内容的时候中文显示正常。
第一,去掉 set fenc=gb2312,
理由:绝对不能在 .vimrc 里面设置 fenc,否则会出现乱码。

第二,set fencs=ucs-bom,utf-8,euc-cn,cp936
理由:ucs-bom必须在第一位,否则无效,cp936和gb的码族只能同时存在一个,否则无效。这里选择兼容性最好的cp936。

第三,set enc=utf-8
理由:如果没有什么特别的理由,一般不要把enc设置为utf-8以外的值。
回复