繁体   English   中英

Java中的file.encoding系统属性在JVM的不同实例中给出不同的结果

[英]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.

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