从其编号创建 Unicode 字符

2022-08-31 08:33:26

我想在Java中显示一个Unicode字符。如果我这样做,它工作得很好:

String symbol = "\u2202";

符号等于“∂”。这就是我想要的。

问题是我知道Unicode编号,需要从中创建Unicode符号。我尝试了(对我来说)显而易见的事情:

int c = 2202;
String symbol =  "\\u" + c;

但是,在本例中,符号等于“\u2202”。这不是我想要的。

如果我知道它的Unicode编号(但只是在运行时---我不能像第一个示例那样对它进行硬编码),我该如何构造它?


答案 1

如果要获取 UTF-16 编码的代码单元作为 ,则可以解析整数并按照其他人的建议强制转换为它。char

如果要支持所有代码点,请使用 Character.toChars(int)。。这将处理代码点无法放入单个值的情况。char

医生 说:

将指定的字符(Unicode 码位)转换为存储在 char 数组中的 UTF-16 表示形式。如果指定的代码点是 BMP(基本多语言平面或平面 0)值,则生成的 char 数组与 codePoint 具有相同的值。如果指定的代码点是补充代码点,则生成的 char 数组具有相应的代理项对。


答案 2

只需将你投到.您可以使用 将其转换为 :intcharStringCharacter.toString()

String s = Character.toString((char)c);

编辑:

请记住,Java源代码中的转义序列(位)是十六进制的,因此,如果您尝试重现转义序列,则需要类似.\uint c = 0x2202