gpt4 book ai didi

java - Locale.getDefault() 总是返回 en

转载 作者:IT王子 更新时间:2023-10-28 23:57:37 26 4
gpt4 key购买 nike

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 设置正确,那么为什么服务器以 en locale 开头。

最佳答案

在 Linux/Unix/Mac 中,设置 LC_ALLLANG可以控制 Java 程序的默认语言环境。在 Windows 中,区域设置是从控制面板的区域和语言选项下设置的。

当 JVM 在 *nix 环境中启动时,它会这样做:

  • 扫描 LC_ALL 的环境
  • 如果LC_ALL不存在,请扫描环境以查找 LANG
  • 如果 JVM 设置 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 存在一个错误,无法识别区域设置的环境设置,并且将始终使用默认系统区域设置。

错误报告在这里:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073906

关于java - Locale.getDefault() 总是返回 en,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10707238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com