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