Unicode Consortium是否打算使UTF-16用完字符?

时间:2012-02-21 19:47:53

标签: unicode utf-8 utf-16

当前版本的UTF-16只能编码1,112,064个不同的数字(代码点); 0x0-0x10FFFF

Unicode Consortium是否打算使UTF-16用完字符?

即。制作代码点> 0x10FFFF

如果没有,为什么有人会为utf-8解析器编写代码以便能够接受5或6字节序列?因为它会为他们的功能添加不必要的指令。

不足1,112,064,我们真的需要更多字符吗?我的意思是:我们多快用完了?

4 个答案:

答案 0 :(得分:4)

截至2011年we have consumed 109,449 characters AND set aside for application use(6,400+131,068)

为超过860,000个未使用的字符留出空间;足够CJK extension E(~10,000个字符)和85个以上的集合;因此,如果与Ferengi culture联系,我们应该做好准备。

2003年11月,IETF限制UTF-8以U + 10FFFF与RFC 3629结束,以匹配UTF-16字符编码的约束:UTF-8解析器不应该接受溢出utf-16集的5或6字节序列,或4字节序列中大于0x10FFFF的字符

如果超过CJK extension E(~10,000个字符)的大小的1/3,请在此处列出对unicode代码点限制大小构成威胁的编辑列表集:

答案 1 :(得分:1)

目前,Unicode标准没有定义U + 10FFFF以上的任何字符,因此您可以编写应用程序以拒绝该点以上的字符。

预测未来很难,但我认为这种策略在短期内是安全的。老实说,即使Unicode在遥远的未来延伸超过U + 10FFFF,它几乎肯定不会用于任务关键字形。您的应用可能与2063年推出的新Ferengi字体不兼容,但您可以在实际出现问题时随时修复它。

答案 2 :(得分:1)

切入追逐:

编码系统确实只支持高达U + 10FFFF

的代码点

似乎很快就没有任何真正的失控风险。

答案 3 :(得分:0)

除了支持实际使用它们的任何遗留系统之外,没有理由编写支持5-6字节序列的UTF-8解析器。当前的官方UTF-8规范不支持5-6字节序列,以适应与UTF-16的100%无损转换。如果Unicode必须支持U+10FFFF以上的新代码点,那么将有足够的时间为更高的位数设计新的编码格式。或者可能在发生这种情况的时候,内存和计算能力足以让每个人只需切换到UTF-32就可以处理超过40亿个字符的U+FFFFFFFF