我要求解释Unicode中所有可能有效组合的计数.我知道char可以编码为1,2,3或4个字节.我也不明白为什么延续字节有限制,即使该字符的起始字节清除它应该有多长.
我们试图将表情符号插入数据库,但遇到了奇怪的行为。事实证明这与utf-8编码有关。会工作得很好,但不会。这是我们了解 utf-8 代码点的时候。是一个代码点长,但为 2:由 Hot Pepper (U+1F336) 和 Variation Selector-16 (U+FE0F) 组成。
\n了解这一点后,我们将数据库存储宽度增加到2,这解决了 的问题,但我们发现了一个新问题。键帽表情符号 (1\xef\xb8\x8f\xe2\x83\xa32\xef\xb8\x8f\xe2\x83\xa33\xef\xb8\x8f\xe2\x83\xa3) 为 3 个字符:1 个 (U+31 )、变体选择器-16 (U+FE0F) 和组合封闭键帽 (U+20E3)。
\n“好吧,”我们说,“把它增加到 4。” 然后 \xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f 带有 5 个代码点:Face Palm (U+1F926)、表情符号修改器 Fitzpatrick Type-3 (U+1F3FC)、零宽度连接器 ( U+200D)、男性符号 (U+2642) 和变体选择器-16 (U+FE0F)。我们进行了更多尝试,发现英格兰国旗由 7 个代码点组成:
\n所以问题是,显示的 unicode 字符可以使用的最大代码点数量是多少?是否有任何代码点高于 7 个的表情符号(或其他 utf-8 字符)示例?
\n此问题与问题UTF-8 编码字符的最大字节数是多少?类似但不同。。这需要一个 UTF-8 代码点,最大字节数是多少?(剧透:4)。 …