vim中的編碼問題

2022-09-12 01:39:19 字數 1321 閱讀 1192

編碼問題的解決:

ansi碼(american national standards institute),中文:美國國家標準學會的標準碼。

定義:不同的國家和地區制定了不同的標準,由此產生了 gb2312, big5, jis 等各自的編碼標準。這些使用 2 個位元組來代表乙個字元的各種漢字延伸編碼方式,稱為 ansi 編碼。

ansi編碼方式的bug:

當txt文件中一切字元都在 c0≤aa(第乙個位元組)≤df 80≤bb(第二個位元組)≤bf 這個範圍時,notepad都無法確認文件地格式,沒有自動依照utf-8格式來"display"。 而"聯通"就是c1 aa cd a8,剛好在上面地範圍內,所以不能正常顯現。

utf-8(8-bit unicode transformation format)是一種針對unicode 的可變長度字元編碼,又稱萬國碼。由ken thompson於2023年建立。現在已經標準化為rfc 3629。utf-8用1到4個位元組編碼unicode字元。

1.vim編碼方面的基礎知識:

encoding—-該選項使用於緩衝的文字(你正在編輯的檔案),暫存器,vim 指令碼檔案等等。你可以把 『encoding』 選項當作是對 vim 內部執行機制的設定。

fileencoding—-該選項是vim寫入檔案時採用的編碼型別。

termencoding—-該選項代表輸出到客戶終端(term)採用的編碼型別。

fileencodings: vim自動探測fileencoding的順序列表, 啟動時會按照它所列出的字元編碼方式逐一探測即將開啟的檔案的字元編碼方式,並且將 fileencoding 設定為最終探測到的字元編碼方式。

因此最好將unicode 編碼方式放到這個列表的最前面,將拉丁語系編碼方式 latin1 放到最後面。 fileencodings=ucs-bom,utf-8,default,latin1

2,此3個變數的預設值:

encoding—-與系統當前locale相同,所以編輯檔案的時候要考慮當前locale,否則要設定的東西就比較多了。

fileencoding—-vim開啟檔案時自動辨認其編碼,fileencoding就為辨認的值。為空則儲存檔案時採用encoding的編碼,如果沒有修改encoding,那值就是系統當前locale了。

termencoding—-預設空值,也就是輸出到終端不進行編碼轉換。

3.對於ansi 軟體。使用windows下的終端登入伺服器時,我們要確認我們的windows系統預設**頁為cp936(中文windows預設值),另一方面要確認vim設定的termencoding= cp936。

vim的編碼問題

首先要明確 windows中預設的檔案格式是gbk gb2312 而linux一般都是utf 8。在vim中檢視檔案的編碼方式 set fileencoding,即可顯示檔案編碼格式,如果什麼都沒有顯示,請看第三點。如果你只是想檢視其它編碼格式的檔案或者想解決用vim檢視檔案亂碼的問題,那麼你可以在...

vim中編碼方式的設定

以前在設定vi的編碼方式設定的時候,是直接從網上找的相關的方法,主要是在 etc vimrc檔案中新增如下的內容 set fileencodings utf 8,latin 1,gb2312,gbk,gb18030 set termencoding utf 8 set encoding prc 這樣...

vim中編碼方式的設定

以前在設定vi的編碼方式設定的時候,是直接從網上找的相關的方法,主要是在 etc vimrc檔案中新增如下的內容 set fileencodings utf 8,latin 1,gb2312,gbk,gb18030 set termencoding utf 8 set encoding prc 這樣...