Locale.UK和国家/地区代码

时间:2011-12-01 00:09:05

标签: java internationalization iso

根据ISO 2 character codes 英国=英国。但Locale.UK.getCountry()正在返回 GB 。我错过了什么吗?

2 个答案:

答案 0 :(得分:8)

根据this

  

getCountry()方法返回语言环境的区域或国家/地区成员的ISO 3166双字母缩写。

英国的ISO 3166 two-letter abbreviation确实是GB。 uk不是标准的一部分,而是更多的历史事故:

  

在顶级域名中使用.uk而不是.gb是因为它在(现已过时的)JANET名称注册方案中已经存在,其中地址组件的顺序被颠倒了。 .uk在DNS中可用,以简化与这些地址之间的转换。有计划最终过渡到.gb以符合正确的用法,但这种情况从未发生过;现在使用.uk已经根深蒂固,并且无法注册.gb域名。

根据您的目标用途,您可能需要将.gb替换为.uk。

答案 1 :(得分:1)

uk是出于兼容性原因(过去的错误)。

正确的ID为gb

gb保持标准的唯一地方是域名,但这超出了本问题的范围。

为尽量减少潜在问题,您可以将uk重新映射为gb