我创建了一个简单的.jar文件,该文件将带有希腊字符的字符串作为参数,并将其打印在文件中。
但是,我有以下问题:
当我从本地windows机器执行jar文件时,字符串在jar文件中作为参数正确传递,文件中的输出包含我插入的希腊字符。
当我尝试在Windows VM中执行相同的jar文件时,希腊字符未正确编码,文件中的输出包含不可读的字符。
我甚至在chcp 1253中的VM中设置了命令提示符,并将环境变量设置为JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
而没有运气......
有什么建议吗?
答案 0 :(得分:0)
运行chcp 1253
会将您的控制台代码页设置为Windows 1253,但您将Java设置为而不是使用它...
如果您通过批处理脚本运行程序,请将其另存为UTF-8并将-Dfile.encoding=UTF-8
添加到java
命令的参数中。
如果您通过控制台运行程序,请运行chcp 65001
将控制台切换为UTF-8。此外,您可以正确设置变量,您可以保持这种方式,但您也可以使用此选项明确设置运行Java:
chcp 65001
java -Dfile.encoding=UTF-8 -jar binks.jar
编辑:如果Windows仍在抱怨和/或搞砸了,请尝试将65001
更改为1523
,将UTF-8
更改为Windows-1253
。您将失去对大多数Unicode的支持,但现在它有更大的可能性。