web项目使用Tomcat作为服务器,GET请求参数中文乱码
2017-05-17 19:25
471 查看
问题:
web项目使用Tomcat作为服务器时,会遇到GET请求乱码的问题。
原因:
GET请求是将参数拼接到url上向服务器发起请求的。在Tomcat接收到请求时,会先将url解码。而默认的编码方式为"ISO-8859-1",解码后自然会产生乱码。
解决方法:
1) 对URL进行两次编码,这样Tomcat自动解码出来的仍然是url编码以后的非中文字符,不会乱码。但注意在服务器上获取参数时需要再解码一次。
2) 设置Tomcat的server.xml文件,在定义处理http请求的连接器中设置URIEncoding=”UTF-8”。
总结:个人认为在项目中,使用get方式,尽量避免传入中文参数,如果实在避免不了,个人感觉第一种会好一点,在代码中处理问题,可以避免因运行环境不统一,带来的项目不可控,如果到项目后期的话,以解决问题为目的,第二种方式可能是一个有效的解决方案,简单易操作。
题外话:对于POST请求来说,因POST请求参数在http的体部,在读取参数时,是可以设置编码格式的,因此解决POST的中文乱码问题,一般都是通过Filter做拦截,设置请求参数的编码。request.setCharacterEncoding(“utf-8”);
web项目使用Tomcat作为服务器时,会遇到GET请求乱码的问题。
原因:
GET请求是将参数拼接到url上向服务器发起请求的。在Tomcat接收到请求时,会先将url解码。而默认的编码方式为"ISO-8859-1",解码后自然会产生乱码。
解决方法:
1) 对URL进行两次编码,这样Tomcat自动解码出来的仍然是url编码以后的非中文字符,不会乱码。但注意在服务器上获取参数时需要再解码一次。
js中对参数进行编码:encodeURI(encodeURI(中文字符串)); 后端控制层进行一次解码:URLDecoder.decode(参数名, "UTF-8")
2) 设置Tomcat的server.xml文件,在定义处理http请求的连接器中设置URIEncoding=”UTF-8”。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
总结:个人认为在项目中,使用get方式,尽量避免传入中文参数,如果实在避免不了,个人感觉第一种会好一点,在代码中处理问题,可以避免因运行环境不统一,带来的项目不可控,如果到项目后期的话,以解决问题为目的,第二种方式可能是一个有效的解决方案,简单易操作。
题外话:对于POST请求来说,因POST请求参数在http的体部,在读取参数时,是可以设置编码格式的,因此解决POST的中文乱码问题,一般都是通过Filter做拦截,设置请求参数的编码。request.setCharacterEncoding(“utf-8”);
相关文章推荐
- web项目使用Tomcat作为服务器,GET请求参数中文乱码
- tomcat服务器使用get方式请求时参数乱码问题解决
- JavaWeb使用Filter、动态代理对客户端请求服务端参数中文乱码解决
- 关于web项目部署到云平台上get方式进行参数传输是中文乱码的问题
- java web项目get,post请求参数中文乱码解决
- tomcat解决GET请求中文参数乱码
- JSP get 请求 Tomcat 服务器 插入数据到数据库中文乱码处理
- 关于使用Tomcat搭建的Web项目,出现 URL 中文乱码的问题解析
- 使用SpringMVC参数传递时,解决get请求时中文乱码的问题
- Spring Tomcat Post Get 请求参数有中文时出现乱码或+号变空格等关于编码的问题
- 解决问题:在使用springmvc的web.xml配置乱码拦截器之后接收的get或者post请求中文还是乱码
- Tomcat服务器下Get提交中文参数乱码解决
- tomcat服务器,url get请求中文乱码解决方案
- 在Servlet中使用getParameter()方法获取get请求中的中文参数乱码解决方法
- java web项目中使用tomcat的服务器,ajax时中文乱码的问题
- JQuery中使用Ajax传中文参数乱码解决方案(javaweb开发)
- 使用request.getRequestDispatcher请求转发到一个页面中文乱码解决 【转】
- Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
- Struts2中使用GET方式传递中文参数出现乱码的解决方案
- tomcat_get方式传递中文参数乱码问题