根据Unicode规范的说法
D91 UTF-16编码形式:将U+0000..U+D7FF和U+E000..U+FFFF范围内的每个Unicode标量值分配给具有与Unicode标量值相同数值的单个无符号16位代码单元的Unicode编码形式,将range U+10000..U+10FFFF中的每个Unicode标量值分配给代理项对。
术语“标量值”指的是unicode代码点,即必须通过不同的编码形式(UTF-16等)编码成特定字节序列的抽象思想的范围。因此,这个摘录要点似乎是考虑到并非所有的代码点都可以容纳到一个UTF-16代码单元(两个字节)中,有些代码单元应该被编码成一对代码单元--4个字节(称为“代理对”)。
然而,“标量值”一词的定义如下:
D76 Unicode标量值:除高代理项和低代理码点以外的任何Unicode代码点.
等等..。Unicode有代理代码点吗?当UTF-16可以使用4个字节来表示标量点时,原因是什么?有人能解释一下UTF-16是如何使用这个代码点的吗?
发布于 2021-03-12 19:40:27
是的,Unicode代理代码点的准备金范围:
Unicode保留这些范围,因为这些16位值用于代理项对,而其他符号不能分配给它们。代理项对是两个16位值,它们编码U+FFFF以上的不适合单个16位值的点。
发布于 2021-03-14 13:34:42
只是为了最终的澄清。
https://stackoverflow.com/questions/66605467
复制相似问题