将u1F000表示为Java字符串

时间:2009-01-04 20:28:43

标签: java unicode

我从U1F000及其中获得了一堆unicode characters,我想知道如何用Java代表它们。 Java unicode转义的形式为“\ uXXXX”,Java语言规范说“表示补充字符需要两个连续的Unicode转义”。这如何适用于U1F000?

String mahjongTile = "\u0001\uf000";

似乎不起作用(我只得到两个空白方块),但这可能是字体故障,我猜想。

2 个答案:

答案 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”。我承认我不记得我头顶的高/低代理范围:(