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”吗?
答案 0 :(得分:4)
只是“cn”不是语言环境,完整的本地是“zh_CN”以区分“tw_CN”。
请参阅supported locales列表。
locale1 = new Locale("zh", "cn")
println locale1.getDisplayLanguage(locale1)
println locale1.getDisplayLanguage(Locale.TRADITIONAL_CHINESE)
println locale1.getDisplayLanguage(Locale.SIMPLIFIED_CHINESE)
println locale1.getDisplayLanguage(Locale.TAIWAN)
println locale1.getDisplayCountry(locale2)
println locale1.country
println ""
locale2 = new Locale("tw", "cn")
println locale1.getDisplayLanguage(locale2)
println locale2.getDisplayLanguage(Locale.TRADITIONAL_CHINESE)
println locale2.getDisplayLanguage(Locale.SIMPLIFIED_CHINESE)
println locale2.getDisplayLanguage(Locale.TAIWAN)
println locale2.getDisplayCountry(locale2)
println locale2.country
答案 1 :(得分:2)
根据Javadoc for java.util.Locale
,Locale()
的单arg构造函数需要ISO 639-1 language code。中文的ISO 639-1语言代码是“ZH”。
您实际提供的“TW”和“CN”字符串是台湾和中国的ISO 3166-1国家/地区代码。