Unicode联盟是否打算让UTF-16用完字符?

Unicode联盟是否打算让UTF-16用完字符?,unicode,utf-8,utf-16,Unicode,Utf 8,Utf 16,当前版本的UTF-16只能编码1112064个不同的数字(代码点)0x0-0x10FFFF Unicode联盟是否打算让UTF-16用完字符 i、 e.制作一个代码点>0x10FFFF 如果不是,为什么有人要为utf-8解析器编写能够接受5或6字节序列的代码?因为这会给它们的功能增加不必要的指令 1112064还不够,我们真的需要更多的字符吗?我的意思是:我们有多快就用完了?目前,Unicode标准没有定义任何超过U+10FFFF的字符,因此您可以编写应用程序代码,拒绝超过该点的字符 预测未来是

当前版本的UTF-16只能编码1112064个不同的数字(代码点)<代码>0x0-0x10FFFF

Unicode联盟是否打算让UTF-16用完字符

i、 e.制作一个代码点>
0x10FFFF

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


1112064还不够,我们真的需要更多的字符吗?我的意思是:我们有多快就用完了?

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


预测未来是困难的,但我认为你在短期内使用这种策略是安全的。老实说,即使Unicode在遥远的将来扩展到U+10FFFF之后,它几乎肯定不会用于任务关键型标志符号。您的应用程序可能与2063年推出的新Ferengi字体不兼容,但在实际出现问题时,您始终可以修复它。

没有理由编写支持5-6字节序列的UTF-8解析器,除非支持任何实际使用它们的旧系统。当前的官方UTF-8规范不支持5-6字节序列,以适应与UTF-16之间100%的低损耗转换。如果有一段时间Unicode必须支持高于
U+10FFFF
的新代码点,那么就有足够的时间为更高的位计数设计新的编码格式。或者,到那时,内存和计算能力就足够了,每个人都可以使用UTF-32来处理任何事情,它最多可以处理40多亿个字符。

为超过860000个未使用的字符留出空间;足够(约10000个字符)和85套以上,就像它;因此,在与客户接触的情况下,我们应该做好准备

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

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

  • (约10000查尔)
  • (约5000查尔)
    • 切中要害:

      实际上,编码系统只支持高达U+10FFFF的代码点


      看来短期内不会有任何真正的退出风险。

      我不知道《星际迷航》迷们可能会发疯??但我们不应该还有空间吗?我认为1112064是很多该死的字符,我习惯了英语和ascii以及我能想到的所有数学符号和希腊符号,我们只有512个。当然,但是高中水平的基础日语有几千个。中国人,更多。有些语言的字形比其他语言多。尽管如此,我还是同意一百万字形应该延伸很长一段路。我也同意一百万字形应该延伸很长一段路。@GlassGhost:当然,640千字节的内存对任何人来说都足够了。公平地说,人类语言不受摩尔定律的影响——谢天谢地!!那不完全是真的。有些系统使用经过修改的UTF-8算法版本,以允许最多2个非Unicode代码点⁷²−1.只要协作进程不假装这些所谓的“hypers”是实际的Unicode代码点,或者该编码与UTF-8相同(尽管它在很大程度上是相同的),标准中就没有禁止它们的内容。如果你想不出任何创造性的、有趣的和有用的东西来处理额外的51位字符名称空间,我当然知道有人可以。不,这些人不会对UTF-16大惊小怪。谁会呢?如果系统对非Unicode值使用类似UTF-8的编码,那么它就不是真正的UTF-8,它只是一种受UTF-8启发的自定义编码。OP的问题是关于标准UTF-8和Unicode的,在这种情况下,我在回答中所写的内容适用。我碰巧知道一个
      utf8 loose
      解析器,它接受13字节的代码点。这不是无用的。显然,这个过程并没有对UTF-16吹毛求疵,这是一个非常不幸的遗产,我们都想忘记,因为它结合了UTF-8和UTF-32最坏的缺点,却没有享受其中任何一个优点:UTF-16确实是两个世界中最坏的。但不要弄错:任何严格的UTF-8解析器都必须拒绝编码长度超过4字节的代码点。这是为了亲吻UTF-16的甜蜜,你知道吗。当他们发现一种新的非字母书写系统的文明时,唤醒我。@HansPassant唤醒字母的时间只是人类书写的一种形式。还有音节和符号。数以百万计的logogram。CJK扩展名E即将就绪,其中有6000个新字符,其中没有一个与“字母表”有关。@GlassGhost的logograms tchrist意思是汉字。我不相信有人支持所有的Unicode字符;如果您正在制作字体,请随意排除您想要的任何字符。单从数量上看,Unicode新出现的几百个表情符号并没有那么重要,特别是与编码的成千上万个汉字相比,他确实说出了它的意思;例如,百科全书《考古学词典》说,“使用符号的书写系统包括汉语、埃及象形文字和早期楔形文字书写系统。”这不是“10FFF”,也不是已经被接受的答案;这意味着所有这些。很明显,我打字了。另外,另一个答案不是你