一、产生环境
spring boot项目的controller接收Get请求提交的中文参数发生乱码
二、异常情况
中文乱码
三、产生原因
因为内置了tomcat,即使我们在application.yml文件里配置了tomcat的编码格式,但是当我们打包成war包部署到生产服的时候用的却是服务器上的tomcat,所以需要修改服务器上的tomcat的server.xml文件。
四、解决办法
修改tomcat的server.xml配置文件
找到如下代码:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息。
可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。
修改完成后:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />