SSM项目问题中遇到 GET请求中有中文的情况

GET传参有中文的情况

特别

由于准备春招,所以希望各位看客方便的话,能去github上面帮我Star一下项目
https://github.com/Draymonders/Campus-Shop

问题复现

今天做前端,发现无论传什么中文,都不会返回结果
然后Debug时候发现
如果下面的代码

shopName = $('#search').val()

是可以获取中文的 但是 拼接GET请求时候

listUrl + '?' + 'pageIndex=' + pageIndex + '&pageSize='
+ pageSize + '&parentId=' + parentId + '&areaId=' + areaId
+ '&shopCategoryId=' + shopCategoryId + '&shopName=' + shopName;

这时候如果shopName是中文,那么传出去的是 shopName=这样子的

解决方法

前台页面

shopName = $('#search').val()
shopName = encodeURI(encodeURI(shopName));

后台接收处理

String trueShopName = URLDecoder.decode(shopName, "UTF-8");

另一种方法

直接在

${tomcat}/conf/server.xml 文中中找到
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

添加Attribute 如下 
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

参考资料

详解get请求和post请求参数中文乱码的解决办法

posted @ 2018-12-22 10:58  Draymonder  阅读(516)  评论(0编辑  收藏  举报