繁体   English   中英

javac在命令行上不输出unicode

[英]javac does not output unicode on command line

内容:Windows 10,cmd.exe,javac 9.0.1。

我有unicode编码的源代码。 如果我运行javac -encoding UTF-8 ... ,但出现错误,则无法正确显示源。

在此处输入图片说明

如您在图片中看到的,cli可以很好地打印unicode字符。

看来javac没有使用终端的字符编码。

您可以使用标志为JVM指定字符编码:

java -Dfile.encoding=UTF-8 ...

(或其他编码)

Javac只是Java程序的薄包装。 您可以使用-J标志将参数直接传递到其JVM。 所以:

javac -J-Dfile.encoding=UTF-8 ...

您可以通过运行了解当前的(默认)编码

System.getProperty("file.encoding")

并且您可以使用此属性更改默认编码。

对于Windows,通常为cp1252

长话短说,来自IBM KB的队列:

在内部,Java虚拟机(JVM)始终使用Unicode数据进行操作。 但是,所有传入或传出JVM的数据都采用与file.encoding属性匹配的格式。 读入JVM的数据将从file.encoding转换为Unicode,从JVM发出的数据也将从Unicode转换为file.encoding。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM