Ufu*_*arı 74 unicode utf-8 utf
我要求解释Unicode中所有可能有效组合的计数.我知道char可以编码为1,2,3或4个字节.我也不明白为什么延续字节有限制,即使该字符的起始字节清除它应该有多长.
dan*_*n04 105
我要求解释Unicode中所有可能有效组合的计数.
1,111,998:17架飞机×每架飞机65,536个字符 - 2048个代理人 - 66个非人物
请注意,UTF-8和UTF-32理论上可以编码超过17个平面,但是该范围受到UTF-16编码限制的限制.
在Unicode 6.0中实际分配了109,384个代码点.
我也不明白为什么延续字节有限制,即使该字符的起始字节清除它应该有多长.
UTF-8中此限制的目的是使编码自同步.
对于反例,请考虑中文GB18030编码.在那里,字母ß
表示为字节序列81 30 89 38
,其中包含数字0
和的编码8
.因此,如果你有一个字符串搜索功能不是为这个特定于编码的怪癖设计的,那么搜索数字8
会在字母内找到误报ß
.
在UTF-8中,这不可能发生,因为前导字节和跟踪字节之间的非重叠保证了较短字符的编码永远不会在较长字符的编码中发生.
Unicode允许17个平面,每个平面有65,536个可能的字符(或"代码点").这总共有1,114,112个可能的字符.目前,只有约10%的空间已经分配.
这些代码点编码方式的确切细节因编码而异,但您的问题听起来像是在考虑使用UTF-8.之所以在延续字节的限制大概是这样就很容易找到下一个字符的开始(如延续字符总是形式10xxxxxx,但起始字节永远是这种形式).
Unicode支持1,114,112个代码点。有2048个代理代码点,给出1,112,064个标量值。其中有66个非字符,导致1,111,998个可能的编码字符(除非我犯了计算错误)。
归档时间: |
|
查看次数: |
60850 次 |
最近记录: |