如何在Java中编写unicode cross符号?

我正在尝试用Java编写这个unicode十字符号( 𐀵 ):

class A { public static void main(String[] args) { System.out.println("\u2300"); System.out.println("\u10035"); } } 

我可以通过它写一条线( ⌀ )就好了,但十字符号没有出现,而只是打印数字5:

 # javac A.java && java A ⌀ ဃ5 

为什么?

你正在寻找U + 10035,它在Basic Multilingual Plane之外 。 这意味着您不能使用\u来指定值,因为它只处理U + 0000到U + FFFF – 在\u之后总是有四个hex数字。 所以目前你有U + 1003( “MYANMAR LETTER GHA” ),然后是’5’。

不幸的是,Java没有提供字符串文字forms,这使得BMP之外的字符很容易表达。 将它包含在文字(但仍然是ASCII)中的唯一方法是使用UTF-16代理对forms:

 String cross = "\ud800\udc35"; 

或者,您可以将32位代码点forms用作int

 String cross = new String(new int[] { 0x10035 }, 0, 1); 

(这两个字符串相等。)

说了这么多,你的控制台仍然需要支持这个角色 – 你需要尝试一下才能找出它。

我相信Java代表从0x00000xFFFF Unicode字符。 Java会将"\u10035"评估为"\u1003"和之后的5。

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

http://www.oracle.com/technetwork/articles/javase/supplementary-142654.html

Unicode转义符长度为4个字符。 您正在打印\ u1003,然后是’5’。 你确定你有正确的代码点吗?