问题描述
当在.properties的配置文件中有中文时,读取出来的总是乱码。比如我的application.properties配置文件的内容如下:
server.port=9090 test.msg=你好:Springboot
当在程序中读取test.msg值时总是会得到乱码,默认是以ISO-8859-1的字符编码读取,尝试的方法有:
1、添加配置
banner.charset=UTF-8 server.tomcat.uri-encoding=UTF-8 spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true spring.messages.encoding=UTF-8
2、设置文件类型
将application.properites的文件类型修改为UTF-8的编码类型。
通过以上方法测试获取出来的值还是乱码。
解决办法
设置 File Encodings的Transparent native-to-ascii conversion为true,具体步骤如下:依次点击
File -> Settings -> Editor -> File Encodings
将Properties Files (*.properties)下的Default encoding for properties files设置为UTF-8,将Transparent native-to-ascii conversion前的勾选上。
这是网上最多的一种解决方案,但是在eclipse下开发的话,会发现根本就找不到对应的Transparent native-to-ascii conversion设置选项。
那么在eclipse下如何解决Spring boot读取配置文件出现中文乱码的问题呢?
首先,分析勾选Transparent native-to-ascii conversion设置的作用,中文翻译是透明native-to-ascii转换。
分析是eclipse中的属性文件都会转化为ascii码再去被解析。
百度搜索,eclipse中怎么设置properties文件的Transparent native-to-ascii conversion
得到:
在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文
http://www.cnblogs.com/zdz8207/p/java-eclipse-properties.html
推荐使用里面的离线安装。
安装完成PropertiesEditor 插件后,使用该编辑器重新编辑属性文件中的中文,然后重新运行程序,
发现读取的中文配置文件不是乱码了。