get和post方式提交中文乱码问题解决方案
2014-08-17 13:29
671 查看
【出现乱码的原因】
首先无论使用get方式提交,还是post方式提交,如果参数中包含中文,浏览器都会使用当前浏览器编码对其进行URL编码,然后服务器端再进行URL解码,如果浏览器提交数据的编码和服务器接收数据的编码格式不一致,那么就有可能产生中文乱码。在ie中可以通过菜单栏--查看---编码查看编码格式。
【post方式提交乱码解决方法】
对于表单中POST方式提交的数据,只要在接收数据的JSP中正确request.setCharacterEncoding参数,即将对客户端请求进行重新编码的编码设置成浏览器编码,就可以保证得到的参数编码正确。
request.setCharacterEncoding(myEncoding ); request.setCharacterEncoding(myEncoding)的作用是设置对客户端请求进行重新编码的编码。该方法用来指定对浏览器发送来的数据进行重新编码(或者称为解码)时,使用的编码。
另外还有一点需要注意:
request.setCharacterEncoding(myEncoding)和response.setCharacterEncoding(myEncoding )
的区别,前者是浏览器提交到后台时对提交的数据设置编码,后者是后台发送数据到浏览器时对
对于发送数据,设置编码。
【get方式提交乱码解决方法】(参考汤阳光OA)
方案一:
str = new String(str.getBytes("ISO-8859-1"),"UTF-8"),这种方式的大概意思,道说是先把str按照“ISO-8859-1”编码格式拆分成数组,再转为GBK格式组合起来。(这种方式有的情况下不能转换好。不推荐)
方式二:
在tomcat服务器中修改server.xml:URIEncoding="utf-8",因为在Tomcat5.0中和以后,默认情况下使用ISO-8859-1对URL提交的数据和表单中GET方式提交的数据进行重新编码。方式三(不依赖Tomcat的配置,推荐): 浏览器中两次URL编码。 服务器中自己再做一次URL解码。因为参数中包含中文,浏览器都会使用当前浏览器编码对其进行URL编码,然后服务器端再进行URL解码。如果首先将中文编码,然后再传到服务器端那么就不会出现乱码错误了。
![](http://s3.51cto.com/wyfs02/M02/46/3B/wKiom1PwOrOiDWTlAABYji5o7is217.jpg)
jsp页面代码如下:
![](http://s3.51cto.com/wyfs02/M02/46/3D/wKioL1PwPQSwRxcEAACbUukXLXo126.jpg)
首先无论使用get方式提交,还是post方式提交,如果参数中包含中文,浏览器都会使用当前浏览器编码对其进行URL编码,然后服务器端再进行URL解码,如果浏览器提交数据的编码和服务器接收数据的编码格式不一致,那么就有可能产生中文乱码。在ie中可以通过菜单栏--查看---编码查看编码格式。
【post方式提交乱码解决方法】
对于表单中POST方式提交的数据,只要在接收数据的JSP中正确request.setCharacterEncoding参数,即将对客户端请求进行重新编码的编码设置成浏览器编码,就可以保证得到的参数编码正确。
request.setCharacterEncoding(myEncoding ); request.setCharacterEncoding(myEncoding)的作用是设置对客户端请求进行重新编码的编码。该方法用来指定对浏览器发送来的数据进行重新编码(或者称为解码)时,使用的编码。
另外还有一点需要注意:
request.setCharacterEncoding(myEncoding)和response.setCharacterEncoding(myEncoding )
的区别,前者是浏览器提交到后台时对提交的数据设置编码,后者是后台发送数据到浏览器时对
对于发送数据,设置编码。
【get方式提交乱码解决方法】(参考汤阳光OA)
方案一:
str = new String(str.getBytes("ISO-8859-1"),"UTF-8"),这种方式的大概意思,道说是先把str按照“ISO-8859-1”编码格式拆分成数组,再转为GBK格式组合起来。(这种方式有的情况下不能转换好。不推荐)
方式二:
在tomcat服务器中修改server.xml:URIEncoding="utf-8",因为在Tomcat5.0中和以后,默认情况下使用ISO-8859-1对URL提交的数据和表单中GET方式提交的数据进行重新编码。方式三(不依赖Tomcat的配置,推荐): 浏览器中两次URL编码。 服务器中自己再做一次URL解码。因为参数中包含中文,浏览器都会使用当前浏览器编码对其进行URL编码,然后服务器端再进行URL解码。如果首先将中文编码,然后再传到服务器端那么就不会出现乱码错误了。
![](http://s3.51cto.com/wyfs02/M02/46/3B/wKiom1PwOrOiDWTlAABYji5o7is217.jpg)
jsp页面代码如下:
![](http://s3.51cto.com/wyfs02/M02/46/3D/wKioL1PwPQSwRxcEAACbUukXLXo126.jpg)
相关文章推荐
- java中form以post、get方式提交数据中文乱码问题总结
- java中form以post、get方式提交数据中文乱码问题总结
- JAVA 页面传值 get方式提交 中文乱码问题的解决方案
- get和post方式提交中文乱码问题
- 在jsp编程中,用get提交表单提交正常,而用post方式出现中文乱码-问题
- java中form以post、get方式提交数据中文乱码问题总结
- java中form以post、get方式提交数据中文乱码问题总结(转)
- 找到一篇关于form以post、get方式提交数据中文乱码问题总结
- java中form以post、get方式提交数据中文乱码问题总结
- 解决用jquery的get或者post提交方式提交到struts2中的action中文乱码问题
- Struts之post提交表单出现中文乱码问题的解决方案
- Post与Get提交使用过滤器解决中文乱码问题
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- Struts2 与 js 处理Get方式提交的中文参数乱码问题
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
- JSP+ MySQL中文乱码问题post提交乱码解决方案
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
- JSP页面post和get方式提交请求,请求参数出现中文乱码
- get 和 post 方式提交乱码问题
- post、get提交方式,超链接中文乱码