【发布时间】:2012-01-10 05:13:38
【问题描述】:
根据ISO 2 character codes uk = United Kingdom。但是Locale.UK.getCountry() 正在返回 GB。我错过了什么吗?
【问题讨论】:
标签: java internationalization iso
根据ISO 2 character codes uk = United Kingdom。但是Locale.UK.getCountry() 正在返回 GB。我错过了什么吗?
【问题讨论】:
标签: java internationalization iso
uk 是出于兼容性原因(过去的一个错误)。
正确的 id 是gb。
gb 保持标准的唯一地方是域名,但这超出了本问题的范围。
为了尽量减少潜在问题,您可以将 uk 重新映射到 gb。
【讨论】:
根据this,
getCountry() 方法返回区域设置的地区或国家成员的 ISO 3166 两字母缩写。
英国的ISO 3166 two-letter abbreviation 确实是GB。 uk 不是标准的一部分,更多的是历史事故:
顶级域使用 .uk 而不是 .gb 是因为它已在(现已过时的)JANET 名称注册方案中使用,其中地址组件的顺序颠倒了。 .uk 在 DNS 中可用以简化与这些地址之间的转换。有计划最终过渡到 .gb 以符合正确用法,但这从未发生过; .uk 的使用现在根深蒂固,无法注册 .gb 域。
根据您的目标用途,您可能需要将 .gb 替换为 .uk。
【讨论】: