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

时间:2011-05-17 13:56:07

标签: file encoding utf-8 jvm

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

我是否应该-Dfile.encoding=UTF8-Dfile.encoding=UTF-8

5 个答案:

答案 0 :(得分:54)

它将是:

UTF8

有关定义,请参阅here

答案 1 :(得分:13)

如果在您的语言环境建议使用UTF-8(例如LANG=en_US.utf8)的Linux平台上运行Oracle HotSpot JDK 1.7.x,如果未在命令行中使用{{1}进行设置,JDK将默认-Dfile.encoding,默认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,建议它更喜欢该字符串,尽管它有很好的别名,所以“UTF8”也可以正常工作细

如果您使用java.nio.charset.Charset.forName("UTF-8")在同一平台上运行相同的程序,而没有使用,则会产生:

java -Dfile.encoding=UTF8

...注意到默认字符集已从file.encoding: UTF8 defaultCharset: UTF-8 规范化为UTF8

答案 2 :(得分:7)

UTF8和UTF-8都适合我。

答案 3 :(得分:6)

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

答案 4 :(得分:0)

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