有的同学正在做的需求,需要通过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进行编码。
最终还是在度娘那找到答案了:
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进行编码。