根据ISO 2 character codes 英国=英国。但Locale.UK.getCountry()
正在返回 GB 。我错过了什么吗?
答案 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
。