我正在阅读Class Character的文档,该文档提到了有关代理范围的一些信息。
代理代码是什么?
替代方法(例如isSurrogate()isSurrogatePair()isLowSurrogate()isHighSurrogate())的用途是什么。

最佳答案

代理对是在UTF-16中使用的一对16位值,用于对BMP /平面0之外的Unicode代码点进行编码;即大于65535的任何Unicode代码点。

代理范围是一对的两个值来自的16位值的范围;


代理对的高价值来自D800到DBFF范围
代理对的低值范围为DC00至DFFF。


例如:Unicode代码点U + 10437在UTF-16中表示为代理对D801 DC37。

有关更多信息,请阅读UTF-16上的Wikipedia文章。




  Java中的代理范围和代理代码是什么?


上面描述了两个代理范围。

代理代码是两个代理范围之一中的code1。




  替代方法(例如isSurrogate()isSurrogatePair()isLowSurrogate()isHighSurrogate())的用途是什么。



isSurrogate()测试char是低替代还是高替代
isSurrogatePair()测试一对char值是否为有效的代理对
isLowSurrogate()测试char是否为低替代值
isHighSurrogate()测试char是否为高替代值


这些方法的使用是不言而喻的。当将UTF-16代码单元解释为Unicode代码点时,它们用于测试char值。



1-根据上下文的不同,它可以是代码单元,也可以是代码点。如果您具有构成UTF-16字符串的16位代码单元序列,则这些是代码单元。另一方面,如果您有一个Unicode代码点序列,那么如果您要按该序列遇到高低代理,它们将是代码点。但是,代理代码点在该上下文中作为文本没有意义。

10-06 12:41
查看更多