小编典典

Java中的“surrogate pair”是什么?

java

我正在阅读的文档StringBuffer,尤其是reverse()方法。该文档提到了有关代理对的内容。在这种情况下什么是代理对?什么是低和高的代理人?


阅读 923

收藏
2020-03-09

共1个答案

小编典典

术语“代理对”是指以UTF-16编码方案对具有高代码点的Unicode字符进行编码的方式。

在Unicode字符编码中,字符映射到0x0到0x10FFFF之间的值。

在内部,Java使用UTF-16编码方案来存储Unicode文本字符串。在UTF-16中,使用16位(两个字节)的代码单元。由于16位只能包含从0x0到0xFFFF的字符范围,因此使用一些额外的复杂度来存储超出此范围的值(0x10000到0x10FFFF)。这是使用成对的代码单元(称为代理)完成的。

替代代码单元在两个范围内,称为“高替代”和“低替代”,这取决于在两个代码单元序列的开始还是结尾都允许它们。

2020-03-09