方法一:使用native2ascii进行转码,这个不做说明,客户不可能帮你转码的。
方法二:当键是因为时直接getProperty即可,但加载后的propertis对象里的键也是中文乱码,就无法通过getProperty来获得值,
原理):(1)如果编码(输出)和解码(读入)用的encoding是不一致的有可能会引起中文乱码问题
(2)Properties文件默认机制是采用ISO8859-1处理
步骤):(1)首先得先将key转码成ISO8850-1(此时转码后是乱码)
(2)然后将转码的值来getProperty。
参考代码:
try
{
Properties properties = new Properties();
FileInputStream is = new FileInputStream(fileName);
properties.load(is);
is.close();
//首先得先将key转码成ISO8850-1
val = properties.getProperty(new String(keyValue.getBytes("GBK"),"ISO8859_1"));
//对属性文件的内容进行转码
if(val != null)
{
try
{
val = new String(val.getBytes("ISO8859_1"),"GBK");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
本文介绍了解决中文Properties文件乱码的方法。通过将键名转换为ISO8859-1编码,再从Properties对象中获取值并进行解码,从而避免乱码问题。适用于需要读取中文键名配置文件的场景。
1699

被折叠的 条评论
为什么被折叠?



