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

Spring中@RequestParam接收GET请求字符串参数乱码问题

问题原因

你看到的казанÑ�кй是典型的编码错配乱码:UTF-8编码的非ASCII字符被Web容器默认用ISO-8859-1字符集解析了。GET请求的查询参数(@RequestParam绑定的URL拼接参数)解码逻辑由Web容器控制,Spring默认不会强制覆盖容器的URI解码配置,因此当容器默认编码不是UTF-8时,就会出现英文/数字正常、非英文(俄文、中文等)乱码的问题。

解决方法

根据你部署项目的方式选对应配置即可:

  • Spring Boot 内置Tomcat部署
    在项目配置文件中添加以下强制UTF-8编码的配置即可:
    application.yml 配置示例:

    server:
      tomcat:
        uri-encoding: UTF-8 # 指定Tomcat对URI的解码字符集
      servlet:
        encoding:
          charset: UTF-8
          enabled: true
          force: true # 强制所有请求/响应使用UTF-8编码
    

    application.properties 配置示例:

    server.tomcat.uri-encoding=UTF-8
    server.servlet.encoding.charset=UTF-8
    server.servlet.encoding.enabled=true
    server.servlet.encoding.force=true
    
  • 外部Tomcat独立部署
    找到Tomcat安装目录下conf/server.xml文件,修改HTTP连接器配置,添加URIEncoding="UTF-8"属性:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8" />
    

    保存配置后重启Tomcat即可生效。

  • 非Spring Boot的原生Spring MVC项目
    在web.xml中注册Spring提供的字符编码过滤器,强制所有请求走UTF-8编码:

    <filter>
        <filter-name>characterEncodingFilter</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>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
注意事项
  • 前端发起GET请求时,需要对URL中的非ASCII参数做UTF-8格式的URL编码,不要直接把原生俄文/中文等字符拼接在URL上。
  • 可以用以下代码临时验证乱码原因,如果执行后打印出正常俄文,即可确认是编码配置问题:
    log.debug("解码验证结果: {}", new String(searchString.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
    
    注:该代码仅用于问题验证,不要作为正式业务逻辑使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:25:31