Java读取属性文件的中文乱码
以前导入properties配置文件时,所有内容都是英语、数字等,但最近项目要求properties配置文件中存在中文字符,因此在导入java properties文件时,value为中文
问题分析:我开始觉得是文件保存编码的问题。 我目前在项目开发工具中使用的Idea设置了全局编码UTF-8。 这个文件看起来也是UTF-8编码,但是取出数据是乱码。 然后,放入eclipse的所有文件代码都将修改为utf8,如果将仍然存在的问题内容复制到notepad并进行utf8编码转换,问题仍然存在。对于互联网搜索,可以重新写入properties类或jjapad 麻烦的是,jdk开发人员不能不考虑东亚一些国家的字符编码问题。 properties文件操作的代码是之前的代码,分析该代码后,您发现使用的是字节流来读取文件。 具体代码如下。
属性属性=新属性(;
inputstream inputstream=this.getclass (.getresourceasstream )/menu.properties;
properties.load(Inputstream;
system.out.println (properties.getproperty (' a ' ) );
因为字节流无法读取中文,所以取reader并将inputStream转换为reader,用字符流读取中文。 代码如下所示。
属性属性=新属性(;
inputstream inputstream=this.getclass (.getresourceasstream )/menu.properties;
bufferedreaderbf=newbufferedreader (newinputstreamreader (inputstream,' UTF-8 ' ) );
Properties.load(BF;
system.out.println (properties.getproperty (' a ' ) );
在以上操作后重新运行解决了Java读取属性文件时的中文乱码问题