java程序读取properties配置文件中文乱码

java 读取properties文件时,如果包含中文,那么java读出时会有乱码。
原因: java中文件大多以UTF-8或GBK的方式保存,而java程序在读出properties文件时采用unicode编码方式,所以出现乱码

最佳解决办法: 将properties文件中的内容采用第三方工具转为unicode编码的内容
如: 自然灾害 (转换后为\u81EA\u7136\u707E\u5BB3)
工具: UltraEdit 新建文件保存时,格式选择: unicode-ASCCII Escaped,此时中文被转换为如上面的 unicode格式, java读取时就不会出现乱码了!!!

有两种办法:
第一种办法:如楼上所说的那样也可以,就是native2ascii -reverse -encoding gb2312 user.properties ActionName_zh_CN.properties这样以后,你打开ActionName_zh_CN.properties的内容,再将ActionName_zh_CN.properties文件这样置:native2ascii ActionName_zh_CN.properties userChange.properties 然后你的程序读userChange.properties的内容就可以。
第二种办法是:
如你代码里写的,你可以在String username=property.getProperty("username");之后,添加JAVA代码页可以将乱码转为中文的。用如下语句就可以了,resultName=new String(username.getBytes("ISO-8859-1"),"gbk"); 然后再用resultName就可以了,不过这样的话你下面的String password=property.getProperty("password");
都慢慢的通过上面的java代码去转。
或通过反射机制去做第二种办法的转码!

你可能感兴趣的:(java)