我有一个 jar 文件,它应该读取一个 UTF-8 编码文件——我在 Windows 下的文本编辑器中编写的——并将字符显示到屏幕上。在 OS X 和 Linux 下,这可以完美运行。我在让它在 Windows 下工作时遇到了一些麻烦......我已经定义了一个读者和作者,如下所示:
FileInputStream file = new FileInputStream(args[0]);
InputStreamReader reader = new InputStreamReader(file, "UTF8");
PrintStream writer = new PrintStream(System.out, true, "UTF8");
我还按顺序将命令提示符字体更改Lucida Console
为 UTF-8,并将字符编码更改为 UTF-8 chcp 65001
。
现在,当我运行时java -jar Read.jar file.txt
,提示会挥霍这一点。
áéí
ñóú
[]óú
[]
但是,如果我运行type file.txt
,提示符会正确显示文件的内容。
áéí
ñóú
我已经尝试在有和没有 BOM 的情况下保存我的文件,但这并没有什么不同。(UTF-8 甚至不需要 BOM,因为它缺乏字节序,对吗?)我尝试用 编译javac -encoding utf8 *.java
,但同样的事情发生了。
我现在没有主意了。有人愿意帮忙吗?