在在线的diveintopython3一书中,它说utf-32和utf-16的优点是
UTF-32 是一种简单的编码;它接受每个 Unicode 字符(一个 4 字节的数字)并表示具有相同数字的字符。这有一些优点,最重要的是您可以在恒定时间内找到字符串的第 N 个字符,因为第 N 个字符从 4×Nth 字节开始
有人可以解释一下吗?如果可能的话,举个例子……我不确定我是否完全理解
在在线的diveintopython3一书中,它说utf-32和utf-16的优点是
UTF-32 是一种简单的编码;它接受每个 Unicode 字符(一个 4 字节的数字)并表示具有相同数字的字符。这有一些优点,最重要的是您可以在恒定时间内找到字符串的第 N 个字符,因为第 N 个字符从 4×Nth 字节开始
有人可以解释一下吗?如果可能的话,举个例子……我不确定我是否完全理解
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,以此类推。
正如 Pavel 所说,字符没有什么意义,它们最接近的等价物在不同的语言中意味着不同的东西(参见:印度文字)。即使是这样,在 UTF-32 中,尽管有不同的含义,但很容易计算出你认为的字符是什么。由于固定宽度,它可以是拉丁语 'A'、Chandrakala、கா 等。