概述
代理项(Surrogate),是一种在且仅在 UTF-16 中用来描述 Unicode 字符的方法。当字符的代码点值大于 U+FFFF 时,将为其分配两个代码单元:
- 第一个代码单元,被称为高代理项代码单元或前导代码单元;
- 第二个代码单元,被称为低代理项代码单元或尾随代码单元。
这两个代码单元组成的代理项对,就是该字符的 Unicode 代码点。
从 U+0000 到 U+FFFF 的字符集有时被称为 BMP(Basic Multilingual Plane,多语种基本面)。代码点值大于 U+FFFF 的字符被称为补充字符。1
在 Java 中,char 数组、String 类和 StringBuffer 类,都采用 UTF-16 来表示字符。在这种表示法中,补充字符被表示为一对字符值