【问题标题】:utf-32 advantage explanationutf-32优势说明
【发布时间】:2013-05-13 22:50:56
【问题描述】:

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

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

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

【问题讨论】:

    标签: unicode character-encoding utf-32


    【解决方案1】:

    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,等等。

    【讨论】:

    • 问题是虽然'character'(如'code point')在Unicode 中没有什么意义。您可以查看“推特如何计算字符”或utf8everywhere.org
    【解决方案2】:

    正如 Pavel 所说,字符没有什么意义,并且它们最接近的等价物在不同的语言中意味着不同的东西(参见:印度文字)。即使是这样,在 UTF-32 中,尽管有不同的含义,但很容易计算出你认为的字符是什么。由于固定宽度,无论是拉丁语 'A'、Chandrakala、கா 等。

    【讨论】:

      猜你喜欢
      • 2019-12-23
      • 2012-03-24
      • 1970-01-01
      • 2013-06-06
      • 2015-07-09
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      相关资源
      最近更新 更多