Locale.getDefault() 始终返回 en

2024-05-16

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_ALL and LANG可以控制Java程序的默认区域设置。在 Windows 中,区域设置是从控制面板的区域和语言选项下设置的。

当 JVM 在 *nix 环境中启动时,它将执行以下操作:

  • 扫描环境LC_ALL
  • If LC_ALL不存在,扫描环境LANG
  • 如果 JVM 设置user.language设置后,使用它代替环境变量。
  • 如果没有设置,则默认为en_US(我相信这是最后的失败案例)

在你的环境中,你有LC_ALL set to C,这只是 C 语言环境。这基本上是对未使用语言环境的日子的传统回退。

你可以改变LC_ALL在你的情况下,然后重新启动你的 JVM,你应该得到一个新的值java.util.Locale.getDefault().

Example:

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 无法识别区域设置的环境设置的错误,并且将始终使用默认系统区域设置。

错误报告在这里:https://bugs.java.com/bugdatabase/view_bug?bug_id=7073906 https://bugs.java.com/bugdatabase/view_bug?bug_id=7073906

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Locale.getDefault() 始终返回 en 的相关文章

随机推荐

  • 在 Python 中替换三元运算符的最佳方法是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 中的三元条件运算符 https stackoverflow com questions 394809 ternary conditional operator in python 如果我
  • jQuery 动画延迟

    如何使用 jQuery 延迟动画 我需要获得一个导航来扩大宽度 然后扩大高度 然后反转以获得反向动画 Code function nav li not logo nav li ul li hover function this animat
  • NHibernate 获取 & 字符串 Id

    我在 NHibernate 上有一个分配了字符串 Id 的实体 并且在通过 Id 获取实体时遇到了一些问题 例子 假设有这样的数据库记录 Id Description AAA MyDescription 现在 如果我使用搜索 ID aaa
  • 如何在 https 连接上检索 cookie?

    我试图将 cookie 保存在使用 SSL 但始终返回 NULL 的 URL 中 private Map
  • Firebase 身份验证无法启用 Google 身份验证方法 - “更新 Google 时出错”

    我正在尝试使用 Google Auth 登录方法启用 Firebase 身份验证 但启用它并单击 保存 显示错误 更新 Google 时出错 https i stack imgur com HMVGD png 在 Google Cloud
  • 为什么总是./configure;制作;进行安装;作为 3 个单独的步骤?

    每次从源代码编译某些内容时 都会经历相同的 3 个步骤 configure make make install 我明白 将安装过程分为不同的步骤是有意义的 但我不明白 为什么这个星球上的每个编码员都必须一次又一次地编写相同的三个命令才能完成
  • 全局变量声明

    我是 Python 的初学者 并且已经处理过全局变量的概念 当我以为我理解了这个概念时 我看到了一段简短的代码 证明我错了 message global def enclosure message enclosure def local g
  • ::after 内联 HTML 电子邮件?

    banner width 34px height 52px position relative color white font size 11px letter spacing 0 2em text align center float
  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • 针对特定值的 Linq OrderBy

    Linq 中是否有一种方法可以在不知道值的顺序的情况下对一组值 在本例中为字符串 执行 OrderBy 考虑这个数据 A B A C B C D E 以及这些变量 字符串第一优先 第二优先 第三优先 当值设置如下时 firstPref A
  • 如何正确地将 Facebook JavaScript SDK 注入 AngularJS 控制器?

    我是 AnuglarJS 的新手 并且已经用它构建了一个小型网络应用程序 我想将 Facebook JavaScript SDK 与它一起使用 但使用最佳实践 依赖项注入控制器 以维护应用程序结构和可测试性 我找到了这个https grou
  • Play 框架:从 Build.sbt 读取版本

    我看到了很多关于如何从 build sbt 读取版本的问题 并且已经提供了很多解决方法来解决如何将 build sbt 指向 conf application conf 并在中指定版本改为conf application conf 我有一个
  • 将roottools.jar导入Android Studio

    我正在尝试从这里导入 roottools https code google com p roottools https code google com p roottools jar 文件 到 Android Studio 项目 到目前为
  • 将 Dropout 与 Keras 和 LSTM/GRU 单元结合使用

    在 Keras 中 您可以像这样指定 dropout 层 model add Dropout 0 5 但对于 GRU 单元 您可以将 dropout 指定为构造函数中的参数 model add GRU units 512 return se
  • 序列化表达式树

    我正在用 C 做一个分布式系统 并且遇到了障碍 我需要能够使用类型序列化谓词 Predicate
  • 如果文件为空,如何跳过文件行

    python 3中的程序 这是我的第一个涉及文件的程序 我需要忽略注释行 以 开头 和空行 然后拆分这些行 以便它们可迭代 但我不断收到 IndexError 消息 指出字符串索引超出范围 并且程序在空行处崩溃 import os path
  • ssl.SSLEOFError: EOF 发生违反协议 (_ssl.c:1129)

    我正在尝试使用 GOOGLE Drive Api 从电脑上传多个文件到云端硬盘 from pydrive auth import GoogleAuth from pydrive drive import GoogleDrive import
  • Jenkins:在管道 Jenkins 文件内执行 AWS CLI 命令

    您知道如何在 aws 中执行 AWS CLI 命令吗 Jenkinsfile为了建立管道 我没有找到任何插件 首先 您需要在服务器上安装 aws cli 并确保 jenkins 用户有权运行它 或者在创建 EC2 实例时简单地使用 Amaz
  • 在应用程序创建完成时设置 Spark DataGrid 列的默认排序(Flex 4.5)

    我有一个包含多个列的 Spark DataGrid 组件 我希望我的应用程序默认按 DataGrid 中第一列的降序排列 我想使用单击顶部标题一次时发生的内置默认排序 我不需要对我正在使用的 ArrayCollection 进行排序或更改比
  • Locale.getDefault() 始终返回 en

    unix 机器上的服务器始终使用 en 作为默认区域设置 以下是区域设置输出 LANG en US LC CTYPE C LC NUMERIC C LC TIME C LC COLLATE C LC MONETARY C LC MESSAG