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

时间:2024-01-07 17:01:32

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请求参数中文乱码的解决办法