返回
解码乱码:@Value读取properties中文配置解决方案
后端
2024-02-02 05:37:56
大家好,今天我们来聊聊如何解决使用@Value
读取Properties配置文件时中文乱码的问题。
乱码产生的原因
当我们使用@Value
读取配置文件时,SpringBoot默认使用ISO_8859_1编码进行读取,而中文编码为UTF-8,这就会导致中文乱码。
解决方案
要解决这个问题,有几种方法:
- 在application.properties文件中设置文件编码
在application.properties文件中添加一行:
spring.jackson.default-property-encoding=UTF-8
- 在@Value注解中设置编码
在@Value
注解中设置encoding
属性,例如:
@Value("${key}")
private String key = "";
- 使用
@PropertySource
注解
使用@PropertySource
注解指定配置文件的编码,例如:
@PropertySource(value = "classpath:application.properties", encoding = "UTF-8")
public class MyConfig {
// ...
}
注意事项
- 如果在配置文件中使用了中文,建议使用UTF-8编码。
- 如果使用IntelliJ IDEA等开发工具,可以在配置文件的右下角选择编码方式。
- 如果使用了外部配置文件,需要确保配置文件的编码与项目编码一致。
示例代码
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@Configuration
public class MyConfig {
@Value("${key}")
private String key;
@PostConstruct
public void init() {
System.out.println("key = " + key);
}
}
配置application.properties文件
key=中文
运行结果
key = 中文
结语
通过以上方法,我们可以轻松解决@Value
读取Properties配置文件中文乱码的问题。希望本文对大家有所帮助。