2012-01-19 77 views
2

但是,无论何时生成文件(java.text.numberformat.getCurrencyInstance()),文件中显示的货币都在$中,而不是系统区域设置的货币€,我的web应用程序运行正常。尽管Web应用程序显示正确的货币没有问题。该系统是一个远程Ubuntu 10.10服务器。 我已经耗尽了每个系统区域设置的可能性,并且在多次重新启动后,我仍然无法接近答案。 [编辑] 我曾尝试以下:JVM在ubuntu 10.10中获取语言环境设置的位置?

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

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

我已编辑的/ etc /默认/区域设置包含以下内容:

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= 
+0

区域设置清单,你已经尝试过可能会阻止无用的答案是什么并鼓励新的建议。你见过这篇博客文章:http://blog.andrewbeacock.com/2007/01/how-to-change-your-default-locale-on.html –

回答

1

即使你的远程系统具有区域设置为X,并从远程主机区域设置为Y连接您的语言环境(Y)可以神奇地转移到当前会话的远程系统(如TERM)。

参见SendEnv LANG LC_*man ssh_config

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

 
_______________       ______________ 
[ remote host A ]      [ local host B ] 
[ LANG="C"  ] - - - - [ssh]- - - - [ LANG="pl_PL" ] 
[ java app  ]      [ xterm  ] 
[_______________]      [______________] 
+0

网络应用程序在启动时在远程主机上启动。并通过网络浏览器连接到它。另外请记住,网页应用程序实际上在正确的语言环境中显示网页上的所有内容,只是在生成PDF文件时,所有货币格式均为$。 –