UltraEdit editplus notepad等的編碼問題

來源:互聯網
上載者:User
文章目錄
  • UltraEdit是一個非常強大的工具,但是,工具太強大了就會變成一個雙刃劍,用好了是好工具,用不好可能會存在很多的疑惑,在編碼方面UltraEdit存在一寫令人費解的問題,本人做了一點點研究,與大家分享。
UltraEdit是一個非常強大的工具,但是,工具太強大了就會變成一個雙刃劍,用好了是好工具,用不好可能會存在很多的疑惑,在編碼方面UltraEdit存在一寫令人費解的問題,本人做了一點點研究,與大家分享。

主要的問題來源於UTF-8的處理。

Unicode規範中推薦的標記位元組順序的方法是BOM(Byte Order Mark)

UTF-8不需要BOM來表明位元組順序,但可以用BOM來表明編碼方式。如果接收者收到以EF BB BF開頭的位元組流,就知道這是UTF-8編碼了。
由於UTF-8 BOM並沒有得到廣泛的支援,所以造成了一定範圍內的不相容。下面列出幾個主要工具對於BOM的處理。

1.   notepad

 notepad 在儲存時,選擇UTF-8 格式,會在檔案頭寫上BOM header.讀取檔案時,會分析BOM和檔案中是否有中文字元,進而做出正確的選擇。

2.   notepad++

可以設定各種格式,有無BOM都支援。

3.   editplus

 檔案儲存時,選擇UTF-8 格式,不會在檔案頭寫上 BOM header.讀取可以識別UTF-8

4.   ultraedit

 ultraedit在advanced->configuration中可以選擇檔案儲存時是否寫上BOM header.或者另存新檔中選擇。讀取是,如果沒有設定自動檢測UTF-8或者部分無BOM檔案會無法正常顯示。

5.   Eclipse

如果設定了檔案的編碼問UTF-8,那麼檔案儲存為無BOM格式。讀取正常。

6.   vi

 指的是Linux 下的vim, 如果UTF-8 檔案開頭有BOM header, 其能夠正常顯示UTF-8 編碼,否則,顯示為亂碼。

 

UltraEdit的主要問題

1.  如果建立一個檔案,選擇儲存為UTF-8 無 BOM格式,如果資料中沒有中文字元,或者harset=UTF-8,那麼無論怎麼儲存,UE仍然會把檔案儲存為ANSI格式,這樣,以後再加入中文的時 候編碼方式也不會改變,這就會造成Java Build程式產生的指令碼含有亂碼。

2.  如果是正確的UTF-8無BOM格式,在前9205個字元中如果沒有中文,那麼UE會頑固的認為此檔案是ANSI格式,所以導致檔案中文亂碼(測試版本UE 13.10a)。解決辦法就是主動的在前9205個字元前加入一個中文字元。

3.  哭笑不得的UTF-8自動檢測。在advanced->configuration->Unicode/UTF-8 Auto Check中有自動檢測UTF-8的選項,如果選擇,經分析UE將採用三種檢測方式:

a)   檔案編碼的開頭是否有【EF BB BF】字元(即BOM),如果有則認為是UTF-8

b)   檢查是否含有charset=UTF-8類似的文字,如果有,那麼認為是UTF-8格式,這將導致以ANSI儲存的檔案亂碼。

c)   如果是UTF-8無BOM格式的文檔,UE會檢查前9205個字元是否含有中文字元,如果有,如果沒有則使用ANSI編碼進行解析,造成後面的中文字元亂 碼。如果這個時候強制的用UE轉換為UTF-8,則亂上加亂,檔案作廢。對於本身是ANSI格式儲存的檔案,沒有此檢測,中文正常。

4.  UE開啟UTF-8的檔案預設會轉換為UTF-16,影響不大。

 

對於使用者

1.  UE開啟亂碼的問題,在前9205字元中加入中文注釋可以解決此問題,或者使用在UE的【檔案】菜單中的【轉換】->【UNICODE/UTF-8 到 UTF-8(Unicode編輯)】進行轉換。

2.  不要使用UE來建立無中文的UTF-8無BOM檔案。

3.  不要在已經亂碼的檔案中,刪除亂碼然後添加中文再儲存。

4.  建立UTF-8無BOM檔案可以使用Eclipse、Notepad++、EditPlus進行

5.  對於記事本儲存的UTF-8指令檔,Java Build程式也是可以識別的,但是Java檔案不能使用記事本編輯編輯器無法識別檔案頭的EF BB BF標記。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.