如何将 UTF-16 代理十进制转换为 Java 中的 UNICODE

How to Convert UTF-16 Surrogate Decimal to UNICODE in Java

我有一些字符串数据,例如

&#55357 ;&#56842 ;

这些是十进制格式的 UTF 16 代理项对。

如何将它们转换为 Java 中的 Unicode 代码点,以便我的客户可以在没有代理项对的情况下理解 Unicode 十进制 html 实体?

示例:&#128522 ; - 获取上述字符串的响应

假设您已经解析了字符串以获取 2 个数字,只需从这两个 char 值创建一个字符串:

String s = new String(new char[] { 55357, 56842 });
System.out.println(s);

输出


获取代码点:

s.codePointAt(0) // returns 128522

虽然您不必创建字符串:

Character.toCodePoint((char) 55357, (char) 56842) // returns 128522