我需要使用具有罗马尼亚字符的字符串来读取属性文件。
当我尝试进行编码时,我发现有些字符编码不正确。
ResourceBundle bundle = ResourceBundle.getBundle("view.Country");
Enumeration keys = bundle.getKeys();
while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
String value = bundle.getString(key);
try {
System.out.println(key + ": " + new String(value.getBytes("UTF-8"), "UTF-8"));
System.out.println("-----------");
System.out.println(key + ": " + new String(value.getBytes("Windows-1250"), "Windows-1250"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
输入:
Country=România
AdministrativeAreaType=Țara
输出:
AdministrativeAreaType: ?ara
-----------
AdministrativeAreaType: ?ara
Country: România
-----------
Country: România
正如您在输出中看到的,国家/地区值已正确编码。但是AdministrativeAreaType值未正确编码。
如果代码中有任何错误,请告诉我。
答案 0 :(得分:1)
正如社区其他成员所说,罗马尼亚语不是UTF-8或UNICODE支持的语言。
我建议您查看Supported Encodings列表。 ISO-8859-2应涵盖罗马尼亚语。
我不确定,但我猜你将被要求自己进行转换。