【问题标题】:Locale.UK and country codeLocale.UK 和国家代码
【发布时间】:2012-01-10 05:13:38
【问题描述】:

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

【问题讨论】:

    标签: java internationalization iso


    【解决方案1】:

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

    正确的 id 是gb

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

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

    【讨论】:

    • 有标准别名api吗?
    • 它不是任何官方的别名。如果您处理一些非标准系统,您可以将其作为兼容性映射。
    【解决方案2】:

    根据this

    getCountry() 方法返回区域设置的地区或国家成员的 ISO 3166 两字母缩写。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-16
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多