簡體   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