使用过Spring Boot
的同学都知道,如果直接在application.properties
配置中文的话,读取到内存中会出现中文乱码的情况。通过Spring Boot源码分析-配置文件加载,我们可以知道,是由于OriginTrackedPropertiesLoader
类在读取文件的时候,采用的ISO-8859-1
编码读取,而ISO-8859-1
是不支持中文的。
try (CharacterReader reader = new CharacterReader(this.resource)) {
// ...
}
CharacterReader(Resource resource) throws IOException {
this.reader = new LineNumberReader(new InputStreamReader(
resource.getInputStream(), StandardCharsets.ISO_8859_1));
}
所以在application.properties
中配置的中文,读取到的都是乱码。
具体源码分析过程可以参考Spring Boot源码分析-配置文件加载