vim中的編碼問題

來源:互聯網
上載者:User

標籤:io   ar   使用   sp   for   strong   檔案   on   問題   

編碼問題的解決:

  • ANSI格式編碼:

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格式編碼:

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中的編碼問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.