前言:
有时候前端传递中文参数到后台会出现乱码,需要解决这一问题
正文:
方法一:前后端同时做处理
前端:
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