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

我编写了一个很简单的程序,读取配置文件(.properties)里的数据。主要代码部分如下:InputStreamin=newFileInputStream("E:\\张... 我编写了一个很简单的程序,读取配置文件(.properties)里的数据。主要代码部分如下:InputStream in = new FileInputStream("E:\\张兆祥_软件开发工具\\开发工具安装后的\\eclipse\\事例程序\\dbexamples\\bin\\chapter\\user.properties");
Properties property=new Properties();
property.load(in);
String username=property.getProperty("username");
String password=property.getProperty("password");
pstmt.setString(1,username);
pstmt.setString(2,password);
pstmt.executeUpdate();
其中的pstmt.set...为插入数据库时的语句,但是当我改成向控制台输出的时候依然是乱码password是英文,所以没问题,就是那个username,因为是中文,输出为:???×?é不知道该怎么解决,求教哪个高手赐教!!
展开
 我来答
panzc126
推荐于2017-11-23 · TA获得超过154个赞
知道答主
回答量:95
采纳率:0%
帮助的人:0
展开全部
这个问题有两种办法:
第一种办法:如楼上所说的那样也可以,就是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代码去转。
不知道你对反射熟悉不?如果熟悉的话可以通过反射机制去做第二种办法的转码就方便多了!
644792799
2010-05-19 · TA获得超过662个赞
知道小有建树答主
回答量:696
采纳率:100%
帮助的人:526万
展开全部
你的properties文件编译过了吗?凡是有非西欧的字符都应该事先编译的,具体方法如下:
比如你有一个1.properties文件(含有非西欧字符),你可以在cmd窗口中切换到1.properties文件所在目录,然后输入native2ascii -reverse -encoding gb2312 1.properties ActionName_zh_CN.properties

1.properties为转换之前的文件名 ActionName_zh_CN.properties为转换之后的文件名,其中-encoding后面的gb2312是可以变的如 utf-8等

参考资料: http://hi.baidu.com/644792799/blog/item/54e0d530bc511415ebc4af53.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式