如何在Java中编写unicode交叉符号?

如何在Java中编写unicode交叉符号?,java,unicode,string-literals,unicode-literals,Java,Unicode,String Literals,Unicode Literals,我正在尝试编写这个unicode交叉符号(我相信Java表示从0x0000到0xFFFF的unicode字符。Java将“\u10035”计算为“\u1003”是,后面是一个5。您正在查找U+10035,它在外部。这意味着您不能使用\U来指定值,因为它只处理U+0000到U+FFFF-在\U之后总是正好有四个十六进制数字。因此,目前您已经有了U+1003(),后跟“5” 不幸的是,Java没有提供字符串文字形式,这使得BMP之外的字符更易于表达。将其包含在文字中(但仍使用ASCII)的唯一方法是

我正在尝试编写这个unicode交叉符号(我相信Java表示从
0x0000
0xFFFF
的unicode字符。Java将
“\u10035”
计算为
“\u1003”
是,后面是一个5。

您正在查找U+10035,它在外部。这意味着您不能使用
\U
来指定值,因为它只处理U+0000到U+FFFF-在
\U
之后总是正好有四个十六进制数字。因此,目前您已经有了U+1003(),后跟“5”

不幸的是,Java没有提供字符串文字形式,这使得BMP之外的字符更易于表达。将其包含在文字中(但仍使用ASCII)的唯一方法是使用以下形式:

或者,您可以使用32位代码点表单作为
int

String cross = new String(new int[] { 0x10035 }, 0, 1);
(这两个字符串相等。)


话虽如此,您的控制台仍需要支持该字符-您需要尝试它以确定它是否支持该字符。

Unicode转义符的长度为4个字符。您正在打印\u1003,后跟“5”。您确定您的代码点正确吗?

0x10035是一个补充Unicode字符。您需要为其设置字体如果希望程序渲染它,则支持它


请参见Jon Skeet的答案,以了解BMP之外的内容。我明白了。您是如何获得这2个unicode转义序列的?在编写unicode字符串文字时,有没有一种快速的方法可以在我脑海中实现这一点?@Dog:说实话,我写了一些C代码-因为在C中,我可以使用
\U00010035
:)阅读我现在包含的链接“UTF-16代理项对“看看为什么这两种价值观放在一起——这取决于你是否能做你头脑中的数学运算,但我知道我不能。。。至少不可靠且不快速;)获取各种编码的一种方法是从FileFormat.info:@parsifal:Nice-我还没有看到。要在Java中打印代码点的文字形式:
for(char ch:Character.toChars(0x10035))System.out.format(“\\u%04x”,(int)ch)您询问的角色来自Linear-B脚本。这真的是你想要的吗?一般来说,你会发现BMP以外的字符在通用字体中并不常见。@parsifal:我当时正试图为路边的实用程序民意测验制作unicode艺术。这种事情让我想知道,我在自己的编程语言中做到了吗
$txr-c'@(绑定一个“\x10035”)
Output:
a=“杜德,你是怎么想出这些史诗般的问题的
String cross = new String(new int[] { 0x10035 }, 0, 1);