UTF-8编码大小

时间:2011-02-03 09:59:42

标签: unicode utf-8

哪些unicode字符符合1,2,4字节?有人能指出我完成角色图表吗?

3 个答案:

答案 0 :(得分:23)

根据字符在范围内的位置对字符进行编码。您可以在维基百科页面上找到UTF8的算法 - 您可以非常快速地实现它 Wikipedia UTF8 Encoding

  • U + 0000到U + 007F(正确)编码为一个字节
  • U + 0080到U + 07FF用2个字节编码
  • U + 0800到U + FFFF用3个字节编码
  • U + 010000到U + 10FFFF用4个字节编码

答案 1 :(得分:4)

关于UTF-8的维基百科文章对编码有足够的描述:

  • 1个字节=代码点0x000000到0x00007F(含)
  • 2个字节=代码点0x000080到0x0007FF
  • 3个字节=代码点0x000800到0x00FFFF
  • 4个字节=代码点0x010000到0x10FFFF

可以直接从unicode.org下载图表。这是一组约150个PDF文件,因为单个图表会很大(可能是30 MiB)。

还要注意,Unicode(与ASCII之类的东西相比)处理要复杂得多 - 有从右到左文本,字节顺序标记,可以组合(“组合”)的代码点来创建单个字符和表示完全相同的字符串的不同方式(以及将字符串转换为适合比较的规范形式的过程),更多的空白字符等。我建议下载整个Unicode规范并阅读大部分如果你计划做的不仅仅是“不多”。

答案 2 :(得分:1)

UTF-8以1到6个字节的限制进行折衷,尽管当前的代码点数量只有4个字节。 UTF-8使用第一个字节来确定字符的长度(以字节为单位) - 请参阅Wiki页面的各种链接:

UTF-8 Wikipedia

单字节UTF-8实际上是ASCII - UTF-8被设计为与它兼容,这就是为什么它比UTF-16更普遍的原因。


编辑:显然,同意UTF-8的代码点不会超过21位(4字节序列) - 但它具有处理多达31位(6字节UTF-8)的技术能力。