系統是Win7的GVIM改變文件字符UTF-8,但其他編輯器顯示ANSI
我的vimrc:
set encoding=utf-8
set ffs=unix,dos,mac
set fencs=utf-8,ucs-bom,euc-jp,gb18030,gbk,gb2312,cp936
set fenc=utf-8
後,我保存GVIM的文件,我在EditPlus中打開文件:
PS:editplus的默認字符設置是ANSI。
爲什麼?
系統是Win7的GVIM改變文件字符UTF-8,但其他編輯器顯示ANSI
我的vimrc:
set encoding=utf-8
set ffs=unix,dos,mac
set fencs=utf-8,ucs-bom,euc-jp,gb18030,gbk,gb2312,cp936
set fenc=utf-8
後,我保存GVIM的文件,我在EditPlus中打開文件:
PS:editplus的默認字符設置是ANSI。
爲什麼?
UTF-8編碼的美妙之處在於,只要文本是純7位ASCII(即只有普通的英文字符),它就與ANSI/ASCII不可區分。所以其他編輯器可能會將該文件顯示爲ANSI。
當插入一個非ASCII字符(例如,A元音變音= A;可以在Vim中作爲一個有向圖輸入此,按壓Ctrl鍵 + ķ,隨後甲:),其他編輯應該正確地檢測UTF-8,但(或者它們可能會顯示兩塊垃圾)。
如果這是另一種Unicode編碼,可以通過插入字節順序標記(:setlocal bomb
在VIM)幫助其他編輯器,但對於UTF-8,沒有高/低字節序的問題,以及BOM很少使用(有些應用程序不能很好地處理它)。
Vim必須添加一些特殊字符或改變其中的內容。你可以將文件複製到其他地方,然後將其保存在gvim中,並在http://www.diffchecker.com/或某些類似的網站上同時附加原始和gvim保存的版本?這應該告訴你到底gvim已經修改了它。
按照標準,它可能只是字節順序標記,但是像大多數文本編輯器一樣,vim不使用它。由文本編輯器決定編碼(或者由用戶手動指定)。正如我之前所說的,uft8和ascii在英文符號上是相同的,所以編輯沒有機會找到編碼 - 它們都是正確的。 – keltar
謝謝。結果是「這兩個文件是相同的」。 editplus有問題嗎? –
如果diff站點可以正確檢測到編碼差異,那麼我不是正面的。我希望gvim不得不以某種方式改變文件來影響其他編輯器如何打開它。或者是vim不是唯一的變量?你有沒有說你可以在editplus中添加一個顯示UTF-8的文件,將它保存在gvim中,並讓editplus切換到調用ANSI? –
您的文件是否包含只有英文字母?這跟ascii沒什麼區別。 – keltar