java为什么简体中文的显示语言采用ISO代码?
import java.io.UnsupportedEncodingException;
import java.util.Locale;
public final class ForeignTextDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
Locale locale = new Locale("TW");
System.out.println(locale.getDisplayLanguage(Locale.TRADITIONAL_CHINESE));
locale = new Locale("CN");
System.out.println(locale.getDisplayLanguage(Locale.SIMPLIFIED_CHINESE));
}
}
当我运行上述程序时,我得到以下输出:
契維文
cn
但是,如果我将第二个区域设置更改为locale = new Locale("ZH");
,我将获得所需的输出:
契維文
中文
为什么会这样我真正想要的是简体中文的显示语言。“ZH”就是这样吗
# 1 楼答案
只是“cn”不是语言环境,完整的本地语言是“zh_cn”,以区别于“tw_cn”
请参阅supported locales的列表
# 2 楼答案
根据Javadoc for ^{} ,用于
Locale()
的单个arg构造函数需要一个ISO 639-1 language code。ISO 639-1中文语言代码为“ZH”您实际提供的“TW”和“CN”字符串是台湾和中国的ISO 3166-1国家代码