UltraEdit 对UTF-8文件的自动处理  

关于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文件”不被选中,但这会导致其中的非Ascii可能显示为乱码

 
 

需要注意的是,如果取消了这个选项,UltraEdit打开包含UTF-8编码的文件会产生乱码。

UltraEdit 在File-Convertions 菜单中提供了多种编码格式之间的转换,这将影响到保存的文件编码,转换后,在状态栏也能看到相应变化。在有些选项后标明有(Unicode Editing) 或者(ASCII Editing),这指定了编辑时显示用的编码,并不影响保存文件所用的编码,要区分开。

工具WinHex 可以用来查看文件16进制内码

 
 

来自 <http://blog.163.com/xiaohui_1123@126/blog/static/39805240201021293448759/>

 
 



打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.