UltraEdit 對UTF 8檔案的自動處理

2021-06-19 19:14:13 字數 1073 閱讀 3585

關於unicode 編碼,這裡有篇文章 可以參考。unicode是幾種多位元組編碼格式的統稱,其中使用廣泛的有utf-8與utf-16,而通常人們說unicode時,實際是在指utf-16編碼,ultraedit 就是這樣,為了避免混淆,下面都按照標準引用名字。 

使用ultraedit 開啟乙個utf-8 編碼的檔案,然後按ctrl+h 進入16進製制模式檢視檔案內碼,你會發現檔案已經被轉換成utf-16 編碼,並新增了utf-16 little endian 的bom :ff  fe,ultraedit 狀態列檔案的尺寸也增加了不少。其實大可不必擔心,可以回到正常模式繼續編輯並儲存,儲存後的檔案並沒有改變編碼格式,只是在編輯時使用utf-16格式而已。

因此,如果通過ultraedit開啟檔案檢視bom 來確定檔案格式,並不是安全的。ultraedit 下方狀態列則真實的顯示了當前開啟檔案的實際編碼格式,而不是當前編輯的編碼格式。 對於乙個普通ascii 格式的檔案,它顯示為dos 或者unix,對於乙個包含有utf-8編碼字元的檔案,它顯示為u8-dos 或者u8-unix,對於utf-16編碼的檔案,它顯示為u-dos 或者u-unix。

我們知道,utf-8 對於ascii 字元的編碼與原有的ascii 編碼一致,因此假如我們刪除了乙個utf-8 dos檔案中所有ascii 以外的字元,儲存後再開啟,ultraedit 將顯示為dos(ascii)。

如果我們不希望ultraedit 在開啟utf-8 檔案時自動轉為utf-16 格式編輯,我們可以修改配置。如下圖,確保「自動檢測 utf-8檔案」不被選中。

需要注意的是,如果取消了這個選項,ultraedit開啟包含utf-8編碼的檔案會產生亂碼。

ultraedit 在file-convertions 選單中提供了多種編碼格式之間的轉換,這將影響到儲存的檔案編碼,轉換後,在狀態列也能看到相應變化。在有些選項後標明有(unicode editing) 或者(ascii editing),這指定了編輯時顯示用的編碼,並不影響儲存檔案所用的編碼,要區分開。

工具winhex 可以用來檢視檔案16進製制內碼。

UTF8檔案讀寫

2009 04 07 12 00 56 分類 預設分類 舉報 字型大小訂閱 基本方法 使用vs2005提供的功能讀utf 8文字檔案,並將內容轉存在以unicode儲存的記憶體空間 如果需要寫出則使用二進位制方式開啟檔案,使用windows api函式widechartomultibyte轉換好後再...

網頁utf 8亂碼 utf8亂碼

複製 在前 在windows作業系統上使用ie作為瀏覽器時。常常會發生這樣的問題 在瀏覽使用utf 8編碼的網頁時,瀏覽器無法自動偵測 即沒有設定 自動選擇 編碼格式時 該頁面所用的編碼。即使網頁已經宣告過編碼格式 由此造成某些含有中文utf 8編碼的頁面產生空白輸出。由於utf 8為3個位元組表示...

對URL進行編碼(UTF 8)

最近由於專案需要,寫了乙個函式專門對url裡的中文引數行編碼,網頁那邊是用的utf 8編碼集的,所以在編碼之前必須把字串轉換成utf 8的再進編碼。大家都知道在url位址裡是不可傳中文字元的,因此如果你要url位址裡傳帶有中文字元的引數那就必須對它進行編碼。其實編碼是很簡單的,只是將字串中的每個字元...