前言:
有时候前端传递中文参数到后台会出现乱码,需要解决这一问题
正文:
方法一:前后端同时做处理
前端:
var param = "中文"; encodeURI(param);
后端:
String param = URLDecoder.decode(param, "utf-8");
方法二:过滤器
前后端同时处理过于麻烦,所以就想可不可以统一在一个地方处理
1,设置Tomcat编码格式
但是发现只对get方法有效
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443" useBodyEncodingForURI="true"/>
2,添加过滤器到项目的web.xml
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
参考博客:
更改Tomcat字符编码设置及解决post请求中文字符乱码 - minolk的博客 - CSDN博客
https://blog.csdn.net/minolk/article/details/83214714