Locale.UK и код страны

В соответствии с 2-символьными кодами ISO uk = United Kingdom. Но Locale.UK.getCountry() возвращает ГБ. Я что-то упускаю?


person Aravind Yarram    schedule 01.12.2011    source источник


Ответы (2)


Согласно этому,

Метод getCountry() возвращает двухбуквенную аббревиатуру ISO 3166 для региона или страны-члена локали.

двухбуквенная аббревиатура ISO 3166 для Великобритании действительно означает GB. uk не является частью стандарта, а скорее исторической случайностью:

Использование .uk, а не .gb для домена верхнего уровня связано с его ранее существовавшим использованием в (теперь устаревшей) схеме регистрации имен JANET, в которой порядок компонентов адреса был обратным. .uk был доступен в DNS, чтобы упростить перевод на эти адреса и обратно. Были планы возможного перехода на .gb в соответствии с правильным использованием, но этого так и не произошло; использование .uk теперь укоренилось, и невозможно зарегистрировать домен .gb.

В зависимости от вашего целевого использования вам может потребоваться заменить .gb на .uk.

person Pekka    schedule 01.12.2011

uk здесь из соображений совместимости (ошибка в прошлом).

Правильный идентификатор gb.

Единственное место, где gb остается стандартным, — это доменные имена, но это выходит за рамки этого вопроса.

Чтобы свести к минимуму потенциальные проблемы, вы можете переназначить uk на gb.

person sorin    schedule 01.12.2011
comment
Есть ли стандартный псевдоним API? - person Aravind Yarram; 01.12.2011
comment
Это не псевдоним в любом официальном смысле. Вы можете использовать его как отображение совместимости, если вы имеете дело с какой-то нестандартной системой. - person Mihai Nita; 01.12.2011