Linux下使用vim打开文件乱码问题解决方案


方案一:修改.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

相关内容