[英]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-2和ISO-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.