Какой ISO используется для определения countryId в Locale? - PullRequest
3 голосов
/ 11 декабря 2010

Если я читаю Javadocs для Locale, я вижу, что существует постоянная Великобритания для Великобритании (я думаю: P)

Но если я читаю документацию к классу, она говорит:

Аргументом страны является действительный код страны ISO.Эти коды представляют собой двухбуквенные коды в верхнем регистре, определенные в стандарте ISO-3166.Вы можете найти полный список этих кодов на нескольких сайтах, таких как: http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

Но в ISO 3166 двухбуквенный код для United Kingdom - GB

Итак, почему страной-идентификатором для локали в Великобритании является Великобритания?Какой iso используется для countryId объекта Locale?

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

На самом деле java.util.Locale.UK является статической константой, действительно представляющей Великобританию.Код страны ISO, используемый экземпляром Locale для этой константы, однако, "GB", как указано в ISO 3166.Обратите внимание на то, что существует также так называемое резервирование кода страны по ISO для "Великобритании" (см. Также Википедия ).Почему они назвали статическую константу языкового стандарта «UK», а не «GB», я могу только догадываться, но скорее всего потому, что люди больше привыкли к «UK», а не «GB», хотя последний, конечно, является стандартом ISO.

1 голос
/ 11 декабря 2010

Это действительно ISO 3166. Константа java.util.Locale.UK имеет значение "en_GB".Поэтому, несмотря на то, что он называется Великобритания, он имеет правильное значение.

...