试图打印"白色笑脸"使用UTF-16字符代码\ u263A

时间:2016-01-06 22:01:20

标签: java

我正在尝试打印出白色的笑脸"使用Java中的以下代码行访问控制台窗口:

System.out.println( '\u263A' );

我没有得到笑脸,但有些其他角色看起来有点像问号。

我正在使用jdk和jre版本1.8.0_66运行Windows 7 Pro操作系统任何有关原因的提示?

注意:我在控制台窗口中使用Consolas字体,根据字符映射对话框将代码映射到表意文字。

1 个答案:

答案 0 :(得分:1)

这在您的代码中确实不是问题。正如评论者指出的那样,编写Unicode代码点与应用程序或操作系统如何选择将字节序列呈现为字符之间存在差异。以下是我在Mac上的内容:

> javac TestWhiteSmilingFace.java && java TestWhiteSmilingFace
☺

Windows控制台不支持Unicode输出。相反,它在Windows Code Pages上运行。

如果您愿意将输出管道传输到单独的文件,然后在记事本中打开它,那么这是一种为我成功运行的方法。

  1. 使用/U选项启动cmd.exe。正如cmd documentation中所讨论的,此选项强制将命令输出重定向到文件为Unicode。
  2. 将命令输出重定向到文件,即java TestWhiteSmilingFace > TestWhiteSmilingFace.txt
  3. 在记事本中打开文件,即notepad TestWhiteSmilingFace.txt
  4. 此先前的答案更详细地讨论了Windows控制台的Unicode限制,并建议使用PowerShell Integrated Scripting Environment作为潜在的解决方法。

    Printing Unicode characters to the PowerShell prompt