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

时间:2016-07-14 12:07:25

标签: java string class

我正在阅读课程Character的文档。该文档提到了代理范围的内容。 什么是代理代码? 代理方法有哪些用途,例如isSurrogate()isSurrogatePair()isLowSurrogate()isHighSurrogate()

1 个答案:

答案 0 :(得分:2)

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

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

  • 代理对的高值来自D800到DBFF
  • 代理对的低值来自DC00到DFFF。

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

有关更多信息,请阅读UTF-16上的维基百科文章。

  

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

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

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

  

isSurrogate()isSurrogatePair()isLowSurrogate()isHighSurrogate()等替代方法有何用途。

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

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

1 - 这可以是代码单元或代码点,具体取决于上下文。如果您有一系列构成UTF-16字符串的16位代码单元,那么这些代码单元就是代码单元。另一方面,如果你有一系列Unicode代码点,那么如果你在这个序列中遇到高低代理,那么它们就是代码点。但是,代理代码点在该上下文中作为文本没有意义。