Windows 记事本中几种编码

作者:vkvi 来源:ITPOW(原创) 日期:2008-3-25

ANSI

最初计算机只有英文字符,使用一个字节足以存储这些英文字符。后来其它文字也在计算机上使用,一个字节肯定不够,就使用两个字节来表示该语言的文字,但是英文字符还是只需要一个字节。所以在存储“a中”后,我们会发现存储空间为 3 个字节,其中“a”占一个字节,“中”占两个字节。

Unicode

在 Windows 的记事本中 Unicode 实际上就是 UTF-16,Unicode 和 UTF 是什么关系呢?请参见:Unicode、UCS、UTF-8、UTF-16、UTF-32 的关系

UTF-16 文件开头会多出两个字节作标记,所以即使一个空白的 UTF-16 文件,其占用空间也不是 0,而是 2 字节。

Unicode big endian

Unicode big e1ndian 和 Unicode(Unicode little endian) 是 CPU 处理多字节数的不同方式,不同厂商的 CPU 在处理字节顺序时可能不同。例如“汉”字的 Unicode 编码是 6C49。那么写到文件里时,究竟是将 6C 写在前面,还是将 49 写在前面?如果将 6C 写在前面,就是 Unicode big endian。还是将 49 写在前面,就是 Unicode(Unicode little endian)。

UTF-8

UTF-8 编码是将 Unicode 编码中不同范围的字符采用不同的字节进行编码,对于 ASCII 编码的字符仍使用一个字节进行编码,UTF-8 编码完全兼容 ASCII 编码。与 Unicode(UTF-16) 相比较,UTF-8 编码使得英文文档的占用空间减小了一半,因此 UTF-8 颇受英语系国家的青睐。

通常,UTF-8 编码都使用“EF BB BF”三个字节数据作为文件开头。UTF-8 采用 1-4 个字节对一个字符进行编码,而 UTF-16 和 UTF-32 使用固定的两个字节和四个字节来表示一个文字。

相关文章