我从U1F000及其中获得了一堆unicode characters,我想知道如何用Java代表它们。 Java unicode转义的形式为“\ uXXXX”,Java语言规范说“表示补充字符需要两个连续的Unicode转义”。这如何适用于U1F000?
String mahjongTile = "\u0001\uf000";
似乎不起作用(我只得到两个空白方块),但这可能是字体故障,我猜想。
答案 0 :(得分:3)
Jon的答案应该有效,但您也可以在StringBuilder或StringBuffer中使用appendCodePoint
方法。
StringBuilder sb = new StringBuilder();
sb.appendCodePoint(0x1f000);
这两种技术都可以为您转换为代理对。
听起来你现在的问题是让角色正确显示。如果你想在控制台上显示它们,那就别忘了;大多数机器上的控制台太有限了。我建议您将输出写入文件并使用一个好的文本编辑器来读取它,或者在Swing组件中显示输出,如JTextPane。
答案 1 :(得分:1)
如果你想要一个字符串文字,你需要找出合适的代理对。 (在C#中你可以写“\ U0001f000” - \ u用于BMP,\ U用于完整的Unicode。)
在Java中你可以这样做:
String foo = new String(new int[]{0x1f000}, 0, 1);
如果你还想看到它的“1f000”。我承认我不记得我头顶的高/低代理范围:(