两个字节的unicode字母是一个神话?

时间:2011-11-08 18:13:38

标签: unicode encoding

我读过一篇关于文本编码的文章。它指的是说unicode字母是两个字节是一个神话。 它解释了这一点,但我的英语并不是很好理解原因。

请说,如果这是真的,原因可以解释这个事实吗?请尽可能保持简单的英语。

2 个答案:

答案 0 :(得分:3)

根据unicode格式以及您希望表示的字符,它可能需要更多或更少。每个字符最多4个字节:

  

字符编码标准不仅定义了每个标识   字符及其数值或代码点,但也是如何   值以位表示。

     

Unicode标准定义了三种允许相同的编码形式   数据以字节,字或双字的格式传输   (即每个代码单元8,16或32位)。所有三种编码形式   编码相同的共同字符库并且可以有效地编码   在不丢失数据的情况下相互转换。 Unicode   联盟完全赞同使用任何这些编码形式作为   符合实施Unicode标准的方式。

     

UTF-8很受HTML和类似协议的欢迎。 UTF-8是一种方式   将所有Unicode字符转换为可变长度编码   字节。它的优点是Unicode字符对应   熟悉的ASCII集具有与ASCII相同的字节值   转换为UTF-8的Unicode字符可以使用很多   没有大量软件重写的现有软件。

     

UTF-16在许多需要平衡效率的环境中很受欢迎   经济地使用存储来访问角色。这是合情合理的   紧凑,所有使用频繁的字符都适合单个16位   代码单元,而所有其他字符都可以通过成对访问   16位代码单元。

     

UTF-32在没有内存空间但固定宽度的情况下非常有用,   需要单个代码单元访问字符。每个Unicode   使用UTF-32时,字符在单个32位代码单元中编码。

     

所有三种编码形式最多需要4个字节(或32位)的数据   每个角色。

请参阅http://www.unicode.org/standard/principles.html

答案 1 :(得分:3)

Windows和许多传统应用程序传统上使用16位(两个字节)来表示unicode字符,但实际标准是21位(0x000000到0x10ffff)。这就是为什么有这么多不同的编码(UTF-8等)的原因。今天,程序中最常见的unicode字符内部表示应该是UTF-32(32位,4字节),而大多数以UTF-8格式存储在磁盘上。

有关不同unicode编码方案的更多信息,请参阅此维基百科文章:http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings