這似乎是一個已知的問題(http://code.google.com/p/android/issues/detail?id=38622 我來到了一個可能的解決方案是這樣的:。
既然問題是在符號,而不是貨幣代碼,我解決了這個問題創造靜態Map
其中關鍵是貨幣代碼和值是符號。
public static final Map<String, String> MYCURRENCIES = new HashMap<String, String>(){
{
put("EUR","€");
put("USD","$");
(..)
}
};
爲了讓所有(或幾乎)在語言環境的信息可用的貨幣代碼,你可以做這樣的事情:
for (Locale ll: Locale.getAvailableLocales()){
try {
Currency a = Currency.getInstance(ll);
Log.v("MyCurrency",a.getCurrencyCode()+"#"+a.getSymbol());
}catch (Exception e){
// when the locale is not supported
}
}
後你創建你的貨幣代碼和地圖代碼你只需要這樣的:
Currency currency = Currency.getInstance(Locale.getDefault());
String curSymbol = MYCURRENCIES.get(currency.getCurrencyCode());
UTF-8而不是UTF-16?我不明白這是怎麼發生的,但這是一個想法。 – AedonEtLIRA
我認爲這將是一個很好的解決你的答案 Currency.getInstance(新的區域(「您的語言」,COUNTRYCODE))getSymbol()。 –
你可以從這個[鏈接]得到的回答你的問題(https://stackoverflow.com/questions/16832655/getting-currency-code-if-we-have-only-country-code-in-database/16833419# 16833419) –