![](/img/trans.png)
[英]How does gradle decide the file.encoding JVM system property?
[英]file.encoding system property in Java giving different results in different instances of JVM
我在Centos 6.6上运行Java 7。 我在显示为UTF-8
的独立tomcat服务器实例中检查了file.encoding
系统属性。 我在显示ANSI_X3.4-1968
的嵌入式tomcat中进行了ANSI_X3.4-1968
。 两个实例都没有使用file.encoding
任何命令行参数。
神秘之处在于,为什么JVM ANSI_X3.4-1968
在嵌入式tomcat中推断ANSI_X3.4-1968
? 在所有其他情况下,它会根据我的语言环境设置正确推断UTF-8
。
如果不是在命令行中给出的,Java(不是Tomcat)会自动设置file.encoding
。 它将使用环境变量(例如locale
来制定适当的设置。
例如,我的语言环境是en_GB.UTF-8
,因此我的file.encoding解析为UTF-8
。
“嵌入式”实例可能尚未获得完整的环境上下文,因此无法获得与独立实例相同的设置。
有关嵌入式实例的更多信息可能有助于阐明更多信息。
如果您始终希望将file.encoding
设置为UTF-8
,那么必须使用以下选项启动JVM:
-Dfile.encoding=UTF-8
对启动JVM的特定环境的任何依赖都不可靠。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.