关于.properties文件使用中文出现乱码问题,及在eclipse和idea中如何查看
最近修改一个老java项目(使用jdk1.6),发现在eclipse中打开.properties文件,有中文字符的都变成了类似 \u901a\ 这样的字符,查看文件编码已经是UTF-8,即使用idea打开也是如此,而且idea文件编码是灰色,无法修改;搜索了一番,终于找到了相应的查看方法,其实就是编辑器给你再转回汉字显示,实际原文件还是原来的样子,最后究其原因,其实是版本太老,不支持,引用 廖雪峰 老师博客的说明:
早期版本的Java规定.properties
文件编码是ASCII编码(ISO8859-1),如果涉及到中文就必须用name=\u4e2d\u6587
来表示,非常别扭。从JDK9开始,Java的.properties
文件可以使用UTF-8编码了。
不过,需要注意的是,由于load(InputStream)
默认总是以ASCII编码读取字节流,所以会导致读到乱码。我们需要用另一个重载方法load(Reader)
读取:
Properties props = new Properties();
props.load(new FileReader("settings.properties", StandardCharsets.UTF_8));
就可以正常读取中文。InputStream
和Reader
的区别是一个是字节流,一个是字符流。字符流在内存中已经以char
类型表示了,不涉及编码问题。
下面是具体解决方法:
1.eclipse
安装 Properties Editor插件
但是在线是安装不了的,包括从官网点下载都没有反应,不知道是因为太古老链接失效还是因为国外服务器互联互通问题,所以找了一个其他网友的百度网盘的,亲测好用,具体见以下文章:
Eclipse| Eclipse中安装Properties Editor插件(离线安装)_propertieseditor插件下载_YvesHe的博客-CSDN博客
2.idea
这个比较简单,自带设置
文件--设置--编辑器--文件编码---右侧 倒数第二个项目 属性文件(*.properties) 勾选 "自动转换成ASC2但显示原生内容" 前的复选框, 应用--确认即可
参考文章:
IDEA出现问题:*.properties文件中文乱码解决方案_51CTO博客_idea的properties文件中文乱码