Java读取properties文件中文乱码

Java读取properties文件中文乱码

    之前读取properties配置文件时候全都是英文或者数字之类的,最近项目有个需求要properties配置文件中有中文字符存在,那么读取java properties文件的时候如果value是中文,结果出现读取乱码的问题。 

    问题分析:开始以为是文件保存编码问题,我当前项目开发工具使用的Idea,设置有全局编码UTF-8,这个文件查看了也是UTF-8编码,但取出数据是乱码;后来放到eclipse中所有的文件编码都修改成utf8,问题依然存在;把内容复制到notepad++进行utf8编码转换,问题依旧;上网搜索有人提议重写properties类或者用jdk自带的编码转换工具,嫌麻烦而且凭感觉jdk开发者不可能不考虑东亚几国的字符编码问题;因为properties文件操作的代码是那来之前的代码,分析其代码后,发现其用的是字节流来读取文件,具体代码如下:

Properties properties = new Properties();  
InputStream inputStream = this.getClass().getResourceAsStream("/menu.properties");  
properties.load(inputStream );  
System.out.println(properties.getProperty("a"));


    因为字节流是无法读取中文的,所以采取reader把inputStream转换成reader用字符流来读取中文。代码如下:

Properties properties = new Properties();  
InputStream inputStream = this.getClass().getResourceAsStream("/menu.properties");  
BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));  
properties.load(bf);  
System.out.println(properties.getProperty("a")); 
     以上操作之后再次运行已经解决了Java读取properties文件中文乱码问题


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://bjspace.net/post/54

相关推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 抛媚眼 调皮 鄙视 示爱 哭 开心 偷笑 嘘 奸笑 委屈 抱抱 Dog 大兵 威武

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!