我如何使用Java中的char显示U+FFFF以上的Unicode字符?
我需要像这样的东西(如果它是有效的):
char u = '\u+10FFFF';
我如何使用Java中的char显示U+FFFF以上的Unicode字符?
我需要像这样的东西(如果它是有效的):
char u = '\u+10FFFF';
char
(它只能容纳UTF-16编码单元)来实现,但你可以使用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
。
char
中。 - mpontillo