近來因爲項目的須要,須要看一下Windows上的編碼轉換狀況,本打算本身寫個小程序來測如下,結果google了半天也沒有發現好的例子,只是有WideCharToMultiByte, MultiByteToWideChar的API,鑑於已經 n 年沒有寫Windows的程序了(怎麼編譯都忘了),並且時間也不充足,因此仍是想偷懶找個現成的工具。因而首先想到了功能極爲強大的 UltraEdit, 結果UltraEdit果真沒有讓我失望,它提供了任意 code page 和 Unicode, UTF-8 之間的轉換,並且不用修改系統的 code page. 下面簡單介紹一下.(UltraEdit能夠從http://www.ultraedit.com/免費下載試用45天,目前的最新版本是 v13.00a) 小程序
- 試用 UltraEdit 人以打開一個文本文件,能夠不用關心其編碼.(Notepad建立的文件的默認編碼仍是當前code page設定的編碼,在簡體中文環境下是 CP936, 即 GBK)
- 設定 UltraEdit 當前的 code page: 選擇 "View -> Set Code Page", 而後選擇你須要的code page. 這樣後面執行的編碼轉換操做都是根據這裏設定的 code page 進行的.
- 選擇 "Edit -> Hex Function -> Hex Edit" 進入Hex編輯模式,這樣你能夠輸入任意你須要的16進制數字,例如 4E02(Unicode) 或者 8140(GBK) ( "丂" )
- 轉換: 根據你當前的文件的編碼,選擇 "File -> Conversions -> Unicode to ASCII" 或者 "File -> Conversions -> ASCII to Unicode", 這裏的ASCII就是即是當前的 Code Page即是的編碼。
有一點須要注意:如何顯示轉換的結果? ide
- 首先須要適當的字體,例如若是你的Windows是簡體中文,而你想要轉換 Unicode -> Big5,那麼你須要 Big5 字體。從http://www.unifont.org/能夠下載到不少字體。
- 即便有了合適的字體也不必定能正確的顯示。我將個人系統 code page 設定成 CP950(Big5), 重起後將 UltraEdit 的 Code Page 設定成 CP936,而後轉換 GBK <-> Unicode,結果是可以顯示 Unicode編碼的簡體中文字符,而不能顯示 GBK 編碼的中文字符。估計多是和字體的處理有關,字體處理若是和當前的 code page 有關的話,這種設定的不一致就會形成沒法正確顯示。不過在系統code page 是 CP936的狀況下在選擇了正確的字體後能顯示繁體Big5-HKSCS的字符。
- 從 http://www.microsoft.com/globaldev/reference/WinCP.mspx 能夠看到不一樣 Code Page 的編碼轉換表。