2013-04-22 68 views
2

我无法找到适合此API的API。我试过了;在特定范围内打印所有Unicode字符

public static void main(String[] args) { 
    for (int i = 2309; i < 3000; i++) { 
     String hex = Integer.toHexString(i); 
     System.out.println(hex + " = " + (char) i); 
    } 
    } 

此代码仅在Eclipse IDE中打印。

905 = ? 
906 = ? 
907 = ? 
... 

我怎样才能让我们这些十进制和十六进制值,以获得Unicode字符?

+0

愚蠢的错误!我没有将它保存为UTF-8格式。现在它正在工作。 – Mawia 2013-04-22 07:32:48

回答

2

这样打印,因为所有控制台都使用单声道间隔字体。尝试在框架中的JLabel,它应该显示正常。

编辑:

尝试创建一个统一的PrintStream

PrintStream out = new PrintStream(System.out, true, "UTF-8"); 

然后打印到它。

下面是CMD窗口中的输出。

enter image description here

+0

我解决了它。不管怎么说,还是要谢谢你。 – Mawia 2013-04-22 07:34:07

+0

你是如何解决问题的? – 2013-04-22 07:34:47

+0

文件>属性>选择文本文件编码。 – Mawia 2013-04-22 07:36:06

0

我忘了将通过改变它

文件保存为UTF-8格式>属性>选择文本文件编码

这将正确打印权来自Eclipse控制台的字符。缺省值为cp1252,对于那些不理解的字符,将仅打印?