ajax向后台传中文报错

有的同学正在做的需求,需要通过ajax,以httprequest querystring的方式向服务器端传递中文参数,在服务端获取参数后发现是乱码,很蛋疼呀~~
最终还是在度娘那找到答案了:
Tomcat和Weblogic下ajax或get中文乱码

此种方法保证在Tomcat和Weblogic下都不会产生乱码
1、 <Connector port="8080" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" URIEncoding="UTF-8"/>
     更改tomcat编码,tomcat默认为iso-8859-1
2、JSP
    将参数encodeURIComponent(url)
3、action:
companyName= java.net.URLDecoder.decode(request.getParameter("companyName"),"UTF-8");
或者直接获取
companyName=request.getParameter("companyName");
这样部署到weblogic下不会乱码,也不用在filter里面去设置编码


从上面的信息得知,使用tomcat时,request.getParameter默认使用“iso-8859-1“,所以传递参数前及时使用encodeURIComponent编码后,服务端获得的参数还是乱码,
大家只需将自己tomcat服务器 server.xml文件按下面方式配置即可:
<Connector port="8080" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" URIEncoding="UTF-8"/>。

同时传参前使用encodeURIComponent将中文参数使用UTF-8进行编码。

你可能感兴趣的:(Ajax)