我正在阅读类 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 的维基百科文章.
What is a surrogate range and surrogate code in Java?
上面描述了两个替代范围。
代理代码是两个代理范围之一中的代码1。
What is the use of surrogate methods like
isSurrogate()
,isSurrogatePair()
,isLowSurrogate()
,isHighSurrogate()
.
isSurrogate()
测试char
是低代理还是高代理isSurrogatePair()
测试一对char
值是否是有效的代理对isLowSurrogate()
测试char
是否为低代理值isHighSurrogate()
测试char
是否为高代理值
这些方法的使用是不言而喻的。在将 UTF-16 代码单元解释为 Unicode 代码点时,它们用于测试 char
值。
1 - 这可以是代码单元或代码点,具体取决于上下文。如果您有一个构成 UTF-16 字符串的 16 位代码单元序列,那么这些就是代码单元。另一方面,如果您有一系列 Unicode 代码点,那么如果您在该序列中遇到高位和低位代理项,它们就是代码点。但是,代理代码点在该上下文中作为文本没有意义。
关于java - 什么是 Java 中的代理项范围和代理项代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373806/