Java、Unicode、UTF-8 和 Windows Command Prompt
我有一个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");
我还按照这个顺序将命令提示符字体更改为 UTF-8,并将字符编码更改为 UTF-8。Lucida Console
chcp 65001
现在,当我跑的时候,提示把它挥霍出来了。java -jar Read.jar file.txt
áéí
ñóú
[]óú
[]
但是,如果我运行 ,则提示会正确显示文件的内容。type file.txt
áéí
ñóú
我尝试过使用和不使用BOM保存文件,但这并没有产生任何影响。(UTF-8 甚至不需要 BOM,因为它缺乏字节序,对吗?我尝试过使用 编译,但同样的事情发生了。javac -encoding utf8 *.java
我现在没有想法了。有人愿意帮忙吗?