如何在java中使用高阶unicode字符?

时间:2014-10-16 15:07:52

标签: java unicode

如何在Java中使用unicode字符,例如Negative Squared Latin Capital Letter E?使用"\u1F174"并不起作用,因为\u转义只接受4个十六进制数字。

3 个答案:

答案 0 :(得分:5)

您需要将其指定为代理对 - 两个UTF-16代码单元。

例如,如果您将字符复制并粘贴到我的Unicode explorer中,您会看到U + 1F174以UTF-16代码单位表示为U + D83C U + DD74。 (当然,你可以手动解决这个问题。)所以你可以把它写成Java字符串文字:

String text = "\uD83C\uDD74";

其他选项包括:

String text = new StringBuilder().appendCodePoint(0x1f174).toString();
String text = new String(new int[] { 0x1f174 }, 0, 1);
char[] chars = Character.toChars(0x1f174);

答案 1 :(得分:1)

"\uD83C\uDD74"

或者确实

""

因为Java字符代表UTF-16单位而不是实际的Unicode字符,所以你需要将它表示为一个字符串,它将包含两个UTF-16代理。

答案 2 :(得分:0)

使用Character类的字符串中的Unicode字符:

String s= new String(Character.chars(0x1F174));