在 Spring Boot 中解决中文乱码问题,通常需要配置编码设置。以下是几个常见的步骤来处理这些问题:

  1. 设置 application.propertiesapplication.yml 文件:
# application.properties
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true

或者

# application.yml
server:
  servlet:
    encoding:
      charset: UTF-8
      enabled: true
  1. 配置 CharacterEncodingFilter: 如果使用 application.propertiesapplication.yml 无法解决问题,可以手动配置 CharacterEncodingFilter
    @Configuration 类中添加以下 Bean 配置:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.config.annotation.RequestMappingHandlerAdapter;

import javax.servlet.Filter;
import org.springframework.web.filter.CharacterEncodingFilter;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public Filter characterEncodingFilter() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        filter.setForceEncoding(true);
        return filter;
    }
}
  1. 确保 HTML 文件使用 UTF-8 编码: 在 HTML 文件中添加以下 meta 标签,确保浏览器按 UTF-8 编码解析页面:
<meta charset="UTF-8">
  1. 数据库编码设置: 确保数据库的字符集设置为 UTF-8,以避免在存储和检索数据时出现乱码。对于 MySQL,确保数据库和表的字符集为 utf8mb4
ALTER DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE your_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;