解決vim亂碼

2021-06-06 23:05:29 字數 1656 閱讀 5160

使用vim開啟含中文的檔案時, 由於配置不當, 就會出現亂碼. 遇到這種情況, 不要慌. 把下面的設定, 放到你的vimrc中:

set fencs=utf-8,chinese,latin1 fenc=utf-8 enc=utf-8
多個配置, 可以寫在一行, 只需要寫乙個set即可.

下文詳細分析這條配置.

我使用的是ubuntu 12.04系統, 預設使用utf8編碼. 可以使用iconv把utf8編碼的檔案轉碼成gbk.

# 通過iconv把utf8轉碼成gbk, 並且儲存到檔案file.txt中

$ echo '你好, 世界!' | iconv -f utf8 -t gbk > file.txt

簡體中文有3種編碼方式: gb2312, gbk, gb18030. 其中gb18030是最新版本, gbk使用最廣泛.

windows xp, 使用gbk作為簡體中文編碼方式.

值得一提的是, 當軟體把文字檔案讀到記憶體時, 需要轉換編碼方式, 一般以utf8或其他unicode編碼儲存在記憶體中.

因此, 在讀入文字檔案時, 編輯器就要知道檔案的編碼方式(ascii, utf8, gbk還是latin1等等).

高階編輯器一般會嘗試不同的編碼, 直到找到乙個合適的(以不報錯為標準).

# 為了不受vimrc/plugin的影響, 使用`-u none`不載入vimrc/plugin, vim將使用預設配置

$ vim -u none file.txt

äãºã, êà½ç!

vim沒有報錯, 因此vim認為解碼成功; 由於看到亂碼, 我們主觀地認為vim解碼失敗. 這裡涉及到"是/非"哲學問題, 不深入討論. 因為我還沒有對vim進行任何配置, vim可以決定用任何方式對檔案解碼. 不難發現, vim是用萬能的latin1解碼的.

:set fencs?

fileencodings=ucs-bom,utf-8,default,latin1

:set fenc?

fileencoding=latin1

:set enc?

encoding=utf-8

fencs中沒有gbk, 因此vim是不會擅作主張, 使用gbk對檔案進行解碼的. 我們只需要把gbk設到fencs中, 並重新開啟檔案即可:

:set fencs=utf-8,chinese,latin1

:e!

其中,fencs中的編碼名稱的前後位置是很關鍵的, 如果你把latin1放在最前面, 會導致後面的編碼永遠沒法起作用. 因為, latin1使用乙個位元組(8bit)對字元進行編碼, 任何位元組都是有效的latin1字元. chinese是euc-cn的別名. 檔案中的字屬於常見字, 因此可以使用任意一種中文編碼方式, 均可以順利解碼.

也可以使用更加簡便的方式, 臨時改變解碼方式:

:e ++enc=chinese
上述命令, 在對檔案編碼進行猜測時, 特別有用!

**

解決vim亂碼

現在多數linux發行版預設都使用utf8編碼,如果在xwindows下開啟用gb231 2或者gb18030編碼儲存的檔案就會發現檔案內容都是亂碼 解決辦法 使用者目錄下建立.vimrc檔案 加入set fileencodings utf 8,gb2312,gbk,gb18030 set term...

vim中文亂碼分析解決

vim裡面的編碼主要跟三個引數有關 enc encoding fenc fileencoding 和fencs fileencodings 其中fenc是當前檔案的編碼,也就是說,乙個在vim裡面已經正確顯示了的檔案 前提是你的系統環境跟你的enc設定匹配 你可以通過改變 fenc後再w來將此檔案存...

vim中文亂碼的解決方法

編輯 vimrc檔案,加上如下幾行 set fileencodings utf 8,ucs bom,gb18030,gbk,gb2312,cp936 set termencoding utf 8 set encoding utf 8 即可搞定。順便記錄一下vim編碼的詳細介紹 vim和所有的流行文字...