【发布时间】:2017-12-10 15:42:08
【问题描述】:
我正在开发一个尝试输出某些 Unicode 字符(例如,U+2660 到 U+2663)的 Java 程序。在 Windows 7 中工作,在任何情况下我都无法成功查看这些符号。我尝试过的上下文:
- 在我的 jGRASP IDE 中。
- 在 Windows 命令提示符中。
- 通过打印到文本文件。
有什么方法可以成功查看这些字符吗?
【问题讨论】:
我正在开发一个尝试输出某些 Unicode 字符(例如,U+2660 到 U+2663)的 Java 程序。在 Windows 7 中工作,在任何情况下我都无法成功查看这些符号。我尝试过的上下文:
有什么方法可以成功查看这些字符吗?
【问题讨论】:
在 Windows 上没有真正的方法可以做到这一点。使用 Linux 是最简单的解决方案。
Windows 控制台类型支持 UTF-8,Java 类型支持更改编码。所以你可以这样做:
在 Windows 控制台中,使用 Properties 上下文菜单将字体设置为 Lucida Console(可以显示很多 Unicode 字符),然后:
chcp 65001
java -Dfile.encoding=UTF-8 MyProgram
当我在 Windows 7 上执行此操作时,每个 print 或 println 的最后两个字符会重复,但除此之外它似乎可以工作。
请注意,这也会将程序中文件 I/O 的默认编码更改为 UTF-8。
编辑:我刚刚注意到您的第三类“打印到文本文件”。是的,打开文本文件以使用 UTF-8(或任何支持 Unicode 的编码)写入。然后,在编辑器中查看(如果没有 BOM 并且它不是系统默认编码,您可能需要在打开时指定编码 - 您可以在 jGRASP 中使用“文件”>“打开”来执行此操作)并使用可以显示字符的字体。
【讨论】: