2012-09-17 38 views
1

系統是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中打開文件:

enter image description here

PS:editplus的默認字符設置是ANSI。

爲什麼?

+2

您的文件是否包含只有英文字母?這跟ascii沒什麼區別。 – keltar

回答

1

UTF-8編碼的美妙之處在於,只要文本是純7位ASCII(即只有普通的英文字符),它就與ANSI/ASCII不可區分。所以其他編輯器可能會將該文件顯示爲ANSI。

當插入一個非ASCII字符(例如,A元音變音= A;可以在Vim中作爲一個有向圖輸入此,按壓Ctrl鍵 + ķ,隨後),其他編輯應該正確地檢測UTF-8,但(或者它們可能會顯示兩塊垃圾)。

如果這是另一種Unicode編碼,可以通過插入字節順序標記:setlocal bomb在VIM)幫助其他編輯器,但對於UTF-8,沒有高/低字節序的問題,以及BOM很少使用(有些應用程序不能很好地處理它)。

0

Vim必須添加一些特殊字符或改變其中的內容。你可以將文件複製到其他地方,然後將其保存在gvim中,並在http://www.diffchecker.com/或某些類似的網站上同時附加原始和gvim保存的版本?這應該告訴你到底gvim已經修改了它。

+0

按照標準,它可能只是字節順序標記,但是像大多數文本編輯器一樣,vim不使用它。由文本編輯器決定編碼(或者由用戶手動指定)。正如我之前所說的,uft8和ascii在英文符號上是相同的,所以編輯沒有機會找到編碼 - 它們都是正確的。 – keltar

+0

謝謝。結果是「這兩個文件是相同的」。 editplus有問題嗎? –

+0

如果diff站點可以正確檢測到編碼差異,那麼我不是正面的。我希望gvim不得不以某種方式改變文件來影響其他編輯器如何打開它。或者是vim不是唯一的變量?你有沒有說你可以在editplus中添加一個顯示UTF-8的文件,將它保存在gvim中,並讓editplus切換到調用ANSI? –

相關問題