以下是 Spring Boot 从配置文件 properties 读取字符串乱码的解决攻略。
问题描述
当我们在 Spring Boot 的配置文件(application.properties 或 application.yml)中引用带有特殊字符的字符串时,这些字符串可能会出现乱码。例如,我们在配置文件中配置数据库的连接字符串,但是其中包含中文字符,那么 Spring Boot 会将这些中文字符转化为乱码。
解决方案
我们可以在配置文件中使用 UTF-8 编码来解决该问题。下面是两种方法:
方法一:在配置文件中使用 UTF-8 编码
通过在 application.properties 或 application.yml 中设置默认字符编码为 utf-8,可以解决乱码问题。在 application.properties 中添加以下配置:
server.tomcat.uri-encoding=utf-8
# 如果是 Spring MVC,则还需添加以下配置
spring.mvc.charset=utf-8
spring.http.encoding.charset=utf-8
spring.http.encoding.enabled=true
在使用中文字符的地方,要确保文本编辑器以 UTF-8 编码保存文件,并且在配置文件中使用一样的编码方式。例如:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8
user-name: "张三"
方法二:使用 Unicode 码值
如果是在代码中动态生成字符串,可以使用 Unicode 码值。例如,如果要设置数据源的用户名为 "张三",则可以在代码中这样设置:
@Configuration
public class DataSourceConfig {
@Value("${spring.datasource.username}")
private String username;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUsername("\u5f20\u4e09");
return dataSource;
}
}
以上是关于 Spring Boot 从配置文件 properties 读取字符串乱码的解决攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot从配置文件properties读取字符串乱码的解决 - Python技术站