Esto parece ser un problema conocido (http://code.google.com/p/android/issues/detail?id=38622 llegué a una solución posible de esta manera:.
Dado que el problema está en el símbolo y no el código de moneda, i resolvió este problema al crear una estático Map
donde la clave es CurrencyCode y el valor es Symbol.
public static final Map<String, String> MYCURRENCIES = new HashMap<String, String>(){
{
put("EUR","€");
put("USD","$");
(..)
}
};
Con el fin de obtener todos (o casi) los códigos de monedas disponibles en la información de lugares que usted puede hacer algo como esto:
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
}
}
después de haber creado a trazar con el CurrencyCode y símbolo sólo hay que algo como esto:
Currency currency = Currency.getInstance(Locale.getDefault());
String curSymbol = MYCURRENCIES.get(currency.getCurrencyCode());
Puede que esté utilizando UTF-8 en lugar de UTF-16? No veo cómo podría suceder eso, pero es un pensamiento. – AedonEtLIRA
creo que esta será una buena solución para su respuesta Currency.getInstance (nueva configuración regional ("YOUR LANGUAGE", countryCode)). GetSymbol(); –
Puede obtener una respuesta a su pregunta a partir de este [enlace] (https://stackoverflow.com/questions/16832655/getting-currency-code-if-we-have-only-country-code-in-database/16833419# 16833419) –