我正在阅读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代码点序列,那么如果您要按该序列遇到高低代理,它们将是代码点。但是,代理代码点在该上下文中作为文本没有意义。