Currency.getSymbol () дает «US $» и «$» для разных устройств. - PullRequest
2 голосов
/ 29 октября 2019

Во время инициализации валюты я устанавливаю объявление локали locale.US Currency.getInstance (Locale.US), но getSymbol () выдает «US $» и «$ на разных устройствах. GetSymbol () выдает« $ »на samsung, нодает "US $" на мото. Как решить эту проблему.

1 Ответ

0 голосов
/ 30 октября 2019

Из javadoc Currency.getSymbol()

Получает символ этой валюты для стандартного языкового стандарта DISPLAY. Например, для доллара США символом является «$», если языком по умолчанию является США, в то время как для других языков это может быть «US $». Если символ не может быть определен, возвращается код валюты ISO 4217.

Если языковой стандарт по умолчанию DISPLAY содержит расширение Unicode "rg" (переопределение региона), символ возвращается из этогоМетод отражает значение, указанное в этом расширении.

Это эквивалентно вызову getSymbol(Locale.getDefault(Locale.Category.DISPLAY)).

Здесь описывается причина, по которой вы иногда видите «US $"и иногда просто" $ ".

Если вы хотите получить воспроизводимые результаты, используйте

Currency.getInstance(Locale.US).getSymbol(Locale.US). 
...