【问题标题】:Trying to print "white smiling face" using UTF-16 character code \u263A尝试使用 UTF-16 字符代码 \u263A 打印“白色笑脸”
【发布时间】:2016-04-11 03:56:53
【问题描述】:

我正在尝试使用以下 Java 代码行将“白色笑脸”打印到控制台窗口:

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

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

我正在使用 jdk 和 jre 版本 1.8.0_66 运行 Windows 7 Pro 操作系统,有什么提示吗?

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

【问题讨论】:

标签: java


【解决方案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

此先前的答案更详细地讨论了 Windows 控制台 Unicode 限制,并建议使用 PowerShell Integrated Scripting Environment 作为潜在的解决方法。

Printing Unicode characters to the PowerShell prompt

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
  • 2012-01-09
相关资源
最近更新 更多