使用 ultraedit 在 Unicode 和 Code page 之间进行编码转换

近来因为项目的须要,须要看一下Windows上的编码转换状况,本打算本身写个小程序来测如下,结果google了半天也没有发现好的例子,只是有WideCharToMultiByte, MultiByteToWideChar的API,鉴于已经 n 年没有写Windows的程序了(怎么编译都忘了),并且时间也不充足,因此仍是想偷懒找个现成的工具。因而首先想到了功能极为强大的 UltraEdit, 结果UltraEdit果真没有让我失望,它提供了任意 code page 和 Unicode, UTF-8 之间的转换,并且不用修改系统的 code page. 下面简单介绍一下.(UltraEdit能够从http://www.ultraedit.com/免费下载试用45天,目前的最新版本是 v13.00a) 小程序

  1. 试用 UltraEdit  人以打开一个文本文件,能够不用关心其编码.(Notepad建立的文件的默认编码仍是当前code page设定的编码,在简体中文环境下是 CP936, 即 GBK)
  2. 设定 UltraEdit 当前的 code page: 选择 "View -> Set Code Page", 而后选择你须要的code page. 这样后面执行的编码转换操做都是根据这里设定的 code page 进行的.
  3. 选择 "Edit -> Hex Function -> Hex Edit" 进入Hex编辑模式,这样你能够输入任意你须要的16进制数字,例如 4E02(Unicode) 或者 8140(GBK) ( "丂" )
  4. 转换: 根据你当前的文件的编码,选择 "File -> Conversions -> Unicode to ASCII" 或者 "File -> Conversions -> ASCII to Unicode", 这里的ASCII就是即是当前的 Code Page即是的编码。

有一点须要注意:如何显示转换的结果? ide

  1. 首先须要适当的字体,例如若是你的Windows是简体中文,而你想要转换 Unicode -> Big5,那么你须要 Big5 字体。从http://www.unifont.org/能够下载到不少字体。
  2. 即便有了合适的字体也不必定能正确的显示。我将个人系统 code page 设定成 CP950(Big5), 重起后将 UltraEdit 的 Code Page 设定成 CP936,而后转换 GBK <-> Unicode,结果是可以显示 Unicode编码的简体中文字符,而不能显示 GBK 编码的中文字符。估计多是和字体的处理有关,字体处理若是和当前的 code page 有关的话,这种设定的不一致就会形成没法正确显示。不过在系统code page 是 CP936的状况下在选择了正确的字体后能显示繁体Big5-HKSCS的字符。
  3. 从 http://www.microsoft.com/globaldev/reference/WinCP.mspx 能够看到不一样 Code Page 的编码转换表。
相关文章
相关标签/搜索