方案一:修改.vimrc文件
添加下面一行代码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
编码的前后顺序代表了vim在识别文件编码使用的优先次序,所以在不了解的情况下不要更改上述编码的次序
注:这种方法会有一个BUG:就是 GBK 编码的“联通”被误判为 UTF-8 编码,
不过这种情况只发生在一个gbk编码的文件中只有"联通"两个汉字。文件中包含“联通”这个词并不会有任何问题,
所以这种情况发生的可能性是极低的,只要知道这种情况就行了。如果这种情况真的发生了,你可以临时将上面的代码改成
set fileencoding=gb18030
之后再改回去即可。
同样,如果你遇到了其它乱码的情况时,如果你知道文件使用的编码,也可以将fileencoding暂设置成文件使用的编码即可解决。
方案二:安装vim插件
推荐水木社区的 mbbill 开发的 fencview 插件。
该插件使用词频统计的方式识别编码,正确率非常高。
点击这里下载。
下载完后把它移动到vim插件目录,vim7.2默认应该是/usr/share/vim/vim72/plugin/
启用插件的时候,在vim命令模式下输入以下命令
:FencAutoDetect 自动检测文件编码 (推荐)
:FencView 在编码列表中选择文件的编码
:FencManualEncoding coding 手动设置文件编码,用你想使用的编码代替coding
经过我的测试,这种方法没有上面经典的“联通”识别错误的BUG