【Java】【41】中文传参乱码问题

前言:

有时候前端传递中文参数到后台会出现乱码,需要解决这一问题

正文:

方法一:前后端同时做处理

前端:

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

 

posted @ 2019-08-11 22:24  花生喂龙  阅读(563)  评论(0编辑  收藏  举报