如何在Java中使用unicode字符,例如Negative Squared Latin Capital Letter E?使用"\u1F174"
并不起作用,因为\u
转义只接受4个十六进制数字。
答案 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));