2

更改系统区域设置后,我的 Web 应用程序运行良好,但是每当生成文件 (java.text.numberformat.getCurrencyInstance() ) 时,文件中显示的货币为 $ 而不是系统区域设置的货币 €。不过,Web 应用程序显示正确的货币没有问题。该系统是一个远程 ubuntu 10.10 服务器。我已经用尽了每个系统区域设置的可能性,并且在多次重新启动后,我仍然离答案很远。[编辑] 我尝试了以下方法:

https://askubuntu.com/questions/89976/how-to-change-the-default-locale-in-ubuntu-10-10-server 问题最初出现时解决了显示问题。

我已经使用 localepurge 清除了除法语以外的所有其他语言环境。

我已编辑 /etc/default/locale 以包含以下内容:

LANG=fr_FR.UTF-8
LANGUAGE=fr_FR
LC_CTYPE=fr_FR.UTF-8
LC_NUMERIC=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LC_COLLATE=fr_FR.UTF-8
LC_MONETARY=fr_FR.UTF-8
LC_MESSAGES=fr_FR.UTF-8
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
4

1 回答 1

1

即使您的远程系统的语言环境设置为 X,并且您从远程主机连接并将语言环境设置为 Y,您的语言环境 (Y) 也可以神奇地转移到当前会话的远程系统(就像 TERM 一样)。

见。SendEnv LANG LC_*_man ssh_config

因此,您的远程 Java 应用程序可能会根据您的启动方式获得不同的语言环境设置。如果它在主机 A 上重新启动后作为系统服务启动,它将在主机 A (LANG="C") 上获得它的自然语言环境设置,但如果您通过 ssh 从另一个主机 B 登录,使用不同的语言环境设置 (LANG=主机 B 上的“pl_PL”)从主机 A 上的 ssh 会话启动的 java 应用程序可能会从主机 B 获取(取决于 ssh 配置)区域设置。

_______________ ______________
[远程主机A] [本地主机B]
[ LANG="C" ] - - - - [ssh]- - - - [ LANG="pl_PL" ]
[Java 应用程序] [xterm]
[_______________] [______________]
于 2012-01-20T00:00:52.340 回答