在一个正常的springBoot工程中其application.properties的配置文件如下内容【就一行】
base.myname2=my Name properties 我的名字
然后配置一个读取配置文件的类
package com.beini.base.config; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import lombok.Data; @Configuration @ConfigurationProperties(prefix="base") /*相当于普通java类的getter和setter*/ @Data public class PropertiesConfig { private String myname2; }
然后在一个测试类开始书写测试类
package com.beini.base; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import com.beini.base.config.PropertiesConfig; @RunWith(SpringRunner.class) @SpringBootTest public class BaseApplicationTests { @Autowired private PropertiesConfig config; @Test public void contextLoads() { System.out.println("yml文件"+config.getMyname()); System.out.println("properties文件"+config.getMyname2()); } } }
打印出来的结果如下【运行测试类】
properties文件my Name properties æçåå
也就是说中文“我的名字” 替换成了如下乱码
æçåå
问题代码下载链接https://github.com/XiaoCao1434/beini-base
希望有答案的慕课友们解答。
另外我试过以下两者方式可行
a: properties 文件的编码格式使用默认的ISO-8859-1编码格式【缺点就是编辑的文件不方便肉眼直接观察】
b: 将properties的内容转换成yml文件【缺点就是不方便当前项目属性配置转换】
希望的答案properties的文件编码格式是UTF-8,而且属性值可能是中文在读取配置文件之后其属性值能够正确读出中文值且配置文件的内容能够方便肉眼看到汉字
Frank作家
元气满满GO
相关分类