UNIX机器上的服务器始终采用EN作为默认语言环境。 以下是现场输出
LANG=en_US
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=C
我只是如果将LANG设置正确,那么为什么服务器有连接区域开始不明白。
UNIX机器上的服务器始终采用EN作为默认语言环境。 以下是现场输出
LANG=en_US
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=C
我只是如果将LANG设置正确,那么为什么服务器有连接区域开始不明白。
在的Linux / Unix / Mac上,设置LC_ALL
和LANG
可以控制Java程序的默认语言环境。 在Windows中,区域设置从控制面板设置,区域和语言选项下。
当JVM在* nix的环境下启动时,它会做到这一点:
LC_ALL
LC_ALL
不存在,扫描环境LANG
user.language
设置,使用到位的环境变量。 en_US
(我相信这是最后的失败案例) 在你的环境,你已经LC_ALL
设置为C
,这仅仅是C语言环境。 这基本上是一个传统的回退的日子,当不使用的语言环境。
您可以更改LC_ALL
你的情况,并重新启动JVM,你应该得到一个新的值java.util.Locale.getDefault()
例:
import java.util.Locale;
public class LocaleTest {
public static void main(String[] args) {
System.out.println(Locale.getDefault());
}
}
下面是运行:
> LC_ALL=en_UK java LocaleTest
en_UK
> LC_ALL=ja_JP java LocaleTest
ja_JP
另外请注意,如果你正在运行的Java 1.7.0-B147,存在与JRE不承认区域环境设置中的错误,并且将始终使用默认的系统区域设置。
这里bug报告: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073906