utf-32优势解释

时间:2013-05-19 04:53:15

标签: unicode character-encoding utf-32

在网上diveintopython3一书中,它说utf-32和utf-16的优势在于

  

UTF-32是一种简单的编码;它需要每个Unicode字符   (一个4字节的数字)并表示具有相同数字的字符。   这有一些优点,最重要的是你可以找到   在恒定时间内字符串的第N个字符,因为第N个   字符从4×N字节开始

有人可以解释一下吗?如果可能的话,举个例子......我不确定我是否完全明白它

2 个答案:

答案 0 :(得分:4)

Unicode的常用编码是UTF-8; UTF-8表示具有可变字节数的字符。例如,“L”字符用单个字节(0x4c)编码,而“é”用两个字节(0xc3,0xa9)编码。因此,在UTF-8编码中,单词“Lézard”需要7个字节,如果不解码所有字符,你就无法获得第N个字符(你不知道每个字符需要多少字节)。

在UTF-32中,所有字符使用4个字节,因此要获得第N个字符,您只需要转到字节4×(N-1)。第一个字符位于第0位,第二个位于第4位,第三个位于第8位,等等。

答案 1 :(得分:0)

正如帕维尔所说,角色没什么意义,而它们最接近的等同物意味着不同语言中的不同东西(参见:印度语脚本)。尽管如此,在UTF-32中,尽管有不同的含义,但很容易计算出你认为的角色。因为固定的宽度,它是拉丁语'A',Chandrakala,கா等。