Unicode 包括了从0hex到10FFFFhex范围内的1,114,112个码位。
我有点困惑,为什么 Unicode 编码可以使用多达4个字节。1114112个码位不可以舒适地放在3个字节中吗?也许我错过了一些需要4个字节的特殊情况,请举出具体的例子吗?
Unicode 包括了从0hex到10FFFFhex范围内的1,114,112个码位。
我有点困惑,为什么 Unicode 编码可以使用多达4个字节。1114112个码位不可以舒适地放在3个字节中吗?也许我错过了一些需要4个字节的特殊情况,请举出具体的例子吗?
0xxx_xxxx 7 bits freely chooseable
110x_xxxx 10xx_xxxx 11 bits freely chooseable
1110_xxxx 10xx_xxxx 10xx_xxxx 16 bits freely chooseable
0xxx_xxxx 7 bits freely chooseable
1xxx_xxxx 0xxx_xxxx 14 bits freely chooseable
1xxx_xxxx 1xxx_xxxx 0xxx_xxxx 21 bits freely chooseable
现在你有足够的空间来编码所有的21位代码点。但这是一个全新的编码方式,因此你需要在全球范围内建立它。根据Unicode的经验,这将需要大约20年时间。祝你好运。
您可以使用UTF-24(请参见注释),但您将失去UFT-8与ASCII兼容的优势,但是使用UTF-16,您通常仅使用2个字节(而不是4个字节)。
记住:超过16位的Unicode代码点很少见:古代语言,现有字形的更好表示(语义),或新表情符号(希望我们不会只用表情符号填满整个长文本)。因此,3个字节的效用还不是必需的(尚未)。也许如果外星人来到地球,我们应该用他们的新语言字符写作,我们将主要使用超过16位的Unicode代码点。我认为这不会很快发生。