标识Unicode字符的各种数字之间的转换
Unicode字符可以通过以下方式识别 例如,“带医用面具的脸”表情符号可以通过描述符标识Unicode字符的各种数字之间的转换,unicode,Unicode,Unicode字符可以通过以下方式识别 例如,“带医用面具的脸”表情符号可以通过描述符U+1F637或U+E40C识别 我假设这些描述符在完整的Unicode字符表中标识字符的索引:但是为什么有两个呢 在UTF-16中,此Unicode代码点可以表示为四个字节,形成两个16位代码单元(我认为): console.log('\uD83D\uDE37')//以Unicode格式打印字符“带医用面罩的脸”专用区域 你问: 但是为什么有两个呢 没有两个。有一个正式指定的字符(U+1F637),另一个(
U+1F637
或U+E40C
识别
我假设这些描述符在完整的Unicode字符表中标识字符的索引:但是为什么有两个呢
在UTF-16中,此Unicode代码点可以表示为四个字节,形成两个16位代码单元(我认为):
console.log('\uD83D\uDE37')//以Unicode格式打印字符“带医用面罩的脸”专用区域
你问:
但是为什么有两个呢
没有两个。有一个正式指定的字符(U+1F637
),另一个(U+E40C
)是一个“私人使用”号码,任何人都可以非正式地分配给任何字符
Unicode代码点使用的范围超过一百万个数字
- 其中只有十分之一,超过113000人被正式指定为特定角色
- 广泛的范围是保留的。就像自然保护区为了永远不会开发而将财产放在一边一样,这些私人数字范围永远不会被正式分配给角色
- 其余的一百万个数字只是没有分配,等待着有一天被官方分配一个字符李>
私人区域中的数字可供任何同意其语义的各方使用。任何人都可以将他们想要的任何字符分配给私人范围内的任何数字。在达成自己的私人协议后,这些协议方可以使用这些代码点安全地交换数据,因为它们知道,未来的软件不会突然将它们重新解释为官方字符
为什么会有人这样做?双方可能是研究和记录Unicode联盟尚未承认的一些模糊语言的学者。或者他们可能是一种虚构语言的粉丝,这种语言不符合Unicode中官方包含的要求。或者,他们可能是想非官方地发明一种新技术的人。在所有这些情况下,使用私有区域的各方需要为其非官方字符实现一种带有字形的字体
Unicode联盟之外的一些人已经协调努力,将Unicode未涵盖的字符公开分配给私人使用区域内的不同范围。他们可能会发布一个注册表,让其他人知道。但这样的任务当然不是官方的,合规性是可选的
您的编号U+E40C
(十进制58380)来自私人使用区域编号范围。在古代,这个角色可能被很多人用作面具表情符号。但Unicode联盟从未正式分配过这个数字。它也永远不会被分配,因为它只供私人使用
U+1F637
=带医用口罩的脸
=U+E40C属于“私人使用区域”,Unicode没有为其定义标志符号。在U+1F637可用之前,您必须执行的操作。谢谢。那是角色的临时位置?有点像。您不能期望它在不同的操作系统上正确显示。不要用它。
D83D followed by DE37