標籤:io ar 使用 sp for strong 檔案 on 問題
編碼問題的解決:
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於1992年建立。現在已經標準化為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中的編碼問題