You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC与Thymeleaf POST方法提交非拉丁字符存入MySQL后乱码问题

故障原因

你遇到的乱码问题核心出在Spring MVC的请求参数解析环节未强制使用UTF-8编码:默认Spring MVC会采用ISO-8859-1编码解析前端提交的请求参数,你提交的UTF-8格式非拉丁字符被错误转码后存入数据库,最终读取展示时就会出现乱码。你已经排查的前端配置、Thymeleaf静态渲染、数据库本身编码都没问题,所以问题集中在服务端请求解析和数据库连接两个环节。

解决方案

1. 配置Spring MVC字符编码过滤器

基于web.xml配置(传统Spring MVC项目)

在web.xml中优先添加CharacterEncodingFilter,强制请求和响应都使用UTF-8编码:

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceRequestEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

基于Java Config配置(注解/ Spring Boot项目)

注册编码过滤器的Bean:

@Bean
public FilterRegistrationBean<CharacterEncodingFilter> encodingFilter() {
    CharacterEncodingFilter filter = new CharacterEncodingFilter();
    filter.setEncoding("UTF-8");
    filter.setForceRequestEncoding(true);
    filter.setForceResponseEncoding(true);
    FilterRegistrationBean<CharacterEncodingFilter> registrationBean = new FilterRegistrationBean<>(filter);
    registrationBean.addUrlPatterns("/*");
    registrationBean.setOrder(1); // 确保过滤器优先级最高
    return registrationBean;
}

2. 修正MySQL数据库连接配置

检查你的数据源连接URL,确保添加了Unicode和编码参数,避免JDBC驱动层转码错误:
jdbc:mysql://localhost:3306/你的库名?useUnicode=true&characterEncoding=UTF-8
如果是MySQL 8.0+版本,可额外补充时区参数避免其他异常:
jdbc:mysql://localhost:3306/你的库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false

3. 验证排查(可选)

在Controller接收姓名参数的位置打印日志,若此时参数已经乱码说明是过滤器配置未生效,若参数正常则说明是数据库连接层的编码问题,可快速定位故障点。


内容的提问来源于stack exchange,提问作者gurmigou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 23:54:04