2012-01-19 115 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文件時,所有貨幣格式均爲$。 –