Unicode utf-32优势解释

Unicode utf-32优势解释,unicode,character-encoding,utf-32,Unicode,Character Encoding,Utf 32,在网上的书中,它说utf-32和utf-16的优势在于 UTF-32是一种简单的编码方式;它接受每个Unicode字符 (一个4字节的数字)并表示具有相同数字的字符。 这有一些优点,最重要的是你可以找到 常量时间中字符串的第n个字符,因为 字符从第4×n字节开始 有人能解释一下吗?如果可能的话,举个例子。我不确定我是否已经完全理解了它。通常的Unicode编码是UTF-8;UTF-8表示字节数可变的字符。例如,“L”字符用一个字节(0x4c)编码,“é”字符用两个字节(0xc3、0xa9)编码。

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

UTF-32是一种简单的编码方式;它接受每个Unicode字符 (一个4字节的数字)并表示具有相同数字的字符。 这有一些优点,最重要的是你可以找到 常量时间中字符串的第n个字符,因为 字符从第4×n字节开始


有人能解释一下吗?如果可能的话,举个例子。我不确定我是否已经完全理解了它。

通常的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,等等。

正如帕维尔所说,字符没有什么意义,它们最接近的等价物在不同的语言中意味着不同的东西(参见:印度语脚本)。尽管如此,在UTF-32中,无论你认为一个字符是什么,都很容易计算出来,尽管含义不同。是拉丁语的“a”吗,Chandrakala,கா, 等等,因为固定宽度。

问题是,尽管“字符”(如“代码点”)在Unicode中没有什么意义。您可以查看“twitter如何计算字符数”或,