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

    技术2022-05-20  29

    方案一:修改.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 插件。 该插件使用词频统计的方式识别编码,正确率非常高。

    这里下载:http://www.vim.org/scripts/script.php?script_id=1708

     

    下载完后把它移动到vim插件目录,vim7.2默认应该是/usr/share/vim/vim72/plugin/

    启用插件的时候,在vim命令模式下输入以下命令

    :FencAutoDetect 自动检测文件编码 (推荐)

    :FencView 在编码列表中选择文件的编码

    :FencManualEncoding coding 手动设置文件编码,用你想使用的编码代替coding

    经过我的测试,这种方法没有上面经典的“联通”识别错误的BUG

     


    最新回复(0)