繁体   English   中英

语言环境和ISO3CountryCodes

[英]Locale and ISO3CountryCodes

我最近在Java 1.7中看到,如果我在语言环境上循环并获得相同的ISO3Country代码,则对于语言环境“ CS”,它给我错误“找不到3个字母的国家代码CS”。 这是预期的行为吗? 我也在Java 1.6中进行了测试,但没有收到此错误。

Locales[] locales =        GregorianCalender.getAvailableLocales();
For(Locale l: locales){
     System.out.println(l.getISO3CountryCode());
  }  

简短的答案是:这是一个不再存在的国家(塞尔维亚和黑山)的国家代码,因此行为的确可能是不确定的。

ISO-3166分为三个部分。 第一部分,ISO-3166-1,定义了这些国家/地区代码,并且又分为几个部分。 这里最相关的是ISO-3166-1 alpha-2ISO-3166-1 alpha-3 ,它们分别定义了2个字母和3个字母的国家/地区代码。

根据alpha-2表,“ CS”是塞尔维亚和黑山(不再存在的国家)的国家代码。 它仍然具有alpha-2条目,标记为“保留删除”,以实现向后兼容。 为了向后兼容,它可能仍在Java中。

alpha-3中的等效项是“ SCG”,也被标记为保留。 我希望此代码可以返回给您,但可以理解为什么可能不会。 (或者, ISO-3166-3为不再存在的国家/地区定义了国家/地区代码;它们的长度为四个字母,也许应该在此处返回“ CSXX” ...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM