JVM属性-Dfile.encoding = UTF8还是UTF-8?

问题描述 投票:56回答:5

我想知道将我的文件编码设置为UTF-8的Java虚拟机(JVM)属性的价值是什么。

我把-Dfile.encoding=UTF8-Dfile.encoding=UTF-8

file encoding utf-8 jvm
5个回答
1
投票

[INFO] BUILD SUCCESS
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
无论如何,它对我有用:)


57
投票

这将是:

UTF8

有关定义,请参阅here


15
投票

如果在您的语言环境建议使用UTF-8(例如LANG=en_US.utf8)的Linux平台上运行Oracle HotSpot JDK 1.7.x,如果未在命令行中使用-Dfile.encoding进行设置,则JDK将默认使用file.encoding和默认值Charset像这样:

System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));

...收益率:

file.encoding: UTF-8
defaultCharset: UTF-8

...在这样的平台上暗示默认是UTF-8

另外,如果java.nio.charset.Charset.defaultCharset()发现file.encoding没有设置,它会查找java.nio.charset.Charset.forName("UTF-8"),建议它更喜欢该字符串,虽然它有很好的别名,所以“UTF8”也可以正常工作。

如果你使用java -Dfile.encoding=UTF8在同一平台上运行相同的程序,没有连字符,它会产生:

file.encoding: UTF8
defaultCharset: UTF-8

...注意到默认字符集已经从UTF8规范化为UTF-8


8
投票

UTF8和UTF-8都适合我。


7
投票

这不是一个直接的答案,但如果您无法访问java的启动方式,则非常有用:您可以将环境变量JAVA_TOOLS_OPTIONS设置为-Dfile.encoding="UTF-8",每次jvm启动时都会选择该选项。

© www.soinside.com 2019 - 2024. All rights reserved.