在java中,char到Unicode比U + FFFF更多?
2022-09-03 10:09:14
如何在Java中使用char在U + FFFF上方显示Unicode字符?
我需要这样的东西(如果它有效):
char u = '\u+10FFFF';
如何在Java中使用char在U + FFFF上方显示Unicode字符?
我需要这样的东西(如果它有效):
char u = '\u+10FFFF';
你不能用一个(它包含一个UTF-16代码单元)来做到这一点,但你可以使用:char
String
// This represents U+10FFFF
String x = "\udbff\udfff";
或者:
String y = new StringBuilder().appendCodePoint(0x10ffff).toString();
这是一个代理项对(两个 UTF-16 代码单元组合在一起,形成一个超出基本多语言平面的 Unicode 代码点)。当然,您也需要任何要显示数据的东西来应对它......
除了使用 之外,您还可以使用类中直接找到的函数。该函数是并且具有以下规格:StringBuilder
Character
toChars()
将指定的字符(Unicode 码位)转换为
存储在数组中的 UTF-16 表示形式。char
因此,您无需确切知道代理项对的外观,即可直接使用代码点。然后,示例代码如下所示:
int ch = 0x10FFFF;
String s = new String(Character.toChars(ch));
请注意,代码点的数据类型是 int
而不是 char
。