unicode - UTF16字符总数

标签 unicode character-encoding utf-16

您可以计算出UTF 16编码通过排列/组合代表1,112,064个数字吗?

最佳答案

UNICODE标准在3.9节中说:

Each encoding form maps the Unicode code points U+0000..U+D7FF and U+E000..U+10FFFF to unique code unit sequences.



因此,可以由UTF-16表示的代码点(“字符”)的数量为
0xD7FF + 1 + (0x10FFFF - 0xE000) + 1 = 1 112 064

UNICODE标准通常为32位。但是,特定的编码保留了较少的位数以表示最常见的字符,从而对其合法表示的实际字符数施加了特定限制。为了允许更长的位序列,进而允许描述比8(UTF-8)或16(UTF-16)位更长的代码点,定义了特殊的替代代码点。

同样,能够以给定的编码表示给定的代码点并不意味着它是有效的-它必须首先由UNICODE标准进行分配和描述。因此,没有数学公式可以得出可以表示的字符数,数字1 112 064不一定表示有1M个有效字符。

有关详细讨论,请参见UNICODE标准的section 3.9

关于unicode - UTF16字符总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984103/

相关文章:

python - python中的UTF-16代码点计数

pipe.communicate 的 Python 编码

Python 跳过/删除不可解码的字符

Golang stdin 读错了德语变音符号

ruby - 从 Ruby 中的 UTF-16 编码文件中读取内容

java - Character可以代表所有的unicode码位吗?

python - PyQt5 unicode 翻译 : pylupdate5 outputs escape sequences

swift - 如何快速表示 IOS 不支持的字母

c - 按原样获取 C 中 char 变量的二进制内容

r - 阿拉伯文本CSV文件导入?