2011-02-11 21 views
1

我有一個需要顯示貨幣符號的java應用程序。我在Linux(Ubuntu)服務器上運行。在linux服務器上缺少貨幣符號

在Linux服務器LANG = en_GB.UTF-8

下面的代碼測試問題:

import java.util.Currency; 
import java.util.Locale; 
import java.text.NumberFormat; 

public class SymbolTest 
{ 
    public static void main(String[] args) 
    { 
    System.out.println("Hardcoded Unicode Currency Symbol for GBP [\u00A3] "); 
    System.out.println("Currency Symbol for GBP with Locale [" + Currency.getInstance(Locale.UK).getSymbol() + "]"); 
    System.out.println("Currency Symbol for US with Locale [" + Currency.getInstance(Locale.US).getSymbol() + "]"); 
    System.out.println("Currency Symbol for FRANCE with Locale [" + Currency.getInstance(Locale.FRANCE).getSymbol() + "]"); 
    } 
} 

給出的輸出:

硬編碼的Unicode貨幣符號爲GBP£

貨幣符號英鎊與地區[£]

貨幣符號爲美國與區域設置[USD]

貨幣符號爲法國與區域設置[â¬]

我懷疑這是Ubuntu的服務器上的區域設置或郎問題。 我應該在Linux服務器上安裝/配置什麼來啓用貨幣符號顯示?

+1

安裝在系統上的字體對於_rendering_字體非常重要。可能你的服務器沒有渲染字體。 (至少,我沒有在服務器上運行Web瀏覽器,內存太貴了,無法在GUI和瀏覽器上浪費:)當您使用http:// localhost /瀏覽器時,開發工作站是否顯示正確的輸出結果? ...`但使用`http:// server/...`失敗?或者是不正確的輸出在不同的Web瀏覽器上呈現? – sarnold 2011-02-11 09:35:12

+0

是的,這太朦朧了,無法給出有意義的答案。 – 2011-02-11 09:43:48

回答

3

您的程序正確試圖輸出UTF-8,但你的終端顯然不知道它應該是在UTF-8模式。所以你的終端在這裏有問題。你在用什麼終端?

嘗試將程序的輸出重定向到文件,並使用支持UTF-8的編輯器打開該文件,以驗證輸出是否正確。

0

我猜這個問題可能與您實際設置數字或區域設置而不是字體的方式有關。請查看Grails reference on formatting numbers as currencyjava.util.Currency API doc瞭解更多信息。一個快速的方法來排除字體相關的問題就是輸入你之後的符號(如果需要複製粘貼&)爲GSP和驗證,你可以在瀏覽器中查看它:

  • $
+0

他沒有格式化任何數字,我不確定格式化區域設置或格式化字體意味着什麼? – 2011-03-01 10:19:38