从HTTP报文上分析:get 传输机制与 post 有本质不同
get 传输的内容封装在消息头,而且只能传输 ISO-8859-1码的内容,如果是汉字则出现乱码现象 (HTTP协议规范参数会转为ISO-8859-1)
post 传输的内容封装在消息体,支持包括 ISO-8859-1码在内的多种编码数据
GET方式客户端发送流程:编码:
发送URL前的编码,IE的GBK或火狐的UTF-8=》浏览器给强制ISO-8859-1编码,【等价于new String("中".getBytes(),"ISO-8859-1")】
GET方式服务端接收流程:解码:
服务器server.xml中URIEncoding指定编码,默认ISO-8859-1(即request.getParameter()解码)=》应用程序最后解码
GET方式解决方案:
方式一、
前台:一定要用encodeURI,(否则各个浏览器会使用不同的默认编码),后台:new String((req.getParameter("a")).getBytes("ISO-8859-1"),"UTF-8")
但是:如果TOMCAT的server.xml中使用URIEncoding="GBK",则这种方法就不行了,
针对这种情况应该new String(new String(req.getParameter("a1").getBytes("GBK"),"ISO-8859-1").getBytes("ISO-8859-1"),"UTF-8"),所以这个方式不可行
方式二、
前台:encodeURI(encodeURI()),(连续再次),后台:URLDecoder.decode(req.getParameter("a"),"UTF-8")
过滤器中为何对GET提交方式不起作用?
因为ServletRequest.setCharacterEncoding方法未对HTTP报文头的内容进行解码,因此,使用HTTP的GET方法提交的数据将不能正确的解码。
POST方式
用AJAX POST数据,是不能指定编码格式的,只能用utf-8,所以第一建议是前后台都统一用utf-8.
javascript是使用UTF-8国际编码,javascript沿用java的字符处理方式,内部是使用unicode来处理所有字符的
分享到:
相关推荐
设置乱码问题,设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题设置乱码问题
中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析
JAVA 乱码问题,JAVA 乱码问题,JAVA 乱码问题JAVA 乱码问题JAVA 乱码问题JAVA 乱码问题
qt乱码问题解决
最近发现乱码问题很烦,找了许多资料,自己总结了一些东西,主要是web页面的乱码,请大家指正
解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...
Ajax中文乱码问题解决方案
java中文乱码问题详解--- java中文乱码问题详
myeclipse中文乱码问题 myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题
Ajax 中文乱码问题 Ajax 中文乱码问题 Ajax 中文乱码问题
乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决 乱码解决
mysql乱码问题解决mysql乱码问题解决mysql乱码问题解决
中文乱码问题整理总结 通过平时开发实践,总结的乱码问题.
描述开发工具使用过程中,令人头痛的tera term中文乱码问题,如何快速定位解决
今天突然提及的操作之php的JPgraph横坐标中文乱码问题,迫不及待 测试了一下, 尝试了几遍,都是乱码,好不容易没有乱码了,却报错。 解决JPgraph的横坐标显示,中文乱码问题,横坐标数组资源。
struts中文乱码问题解决详细步骤(两种方法)
java项目乱码问题的处理方法,非常详细的
struts 中文乱码问题解决
解决mysql乱码问题。主要是数据库查询出数据中文为问号???的问题。
Properties 文件文中乱码问题解决 Properties 文件文中乱码问题解决是指在使用 Struts 框架进行国际化操作时,对于中文资源文件的处理问题。在 Properties 文件中,中文字符可能会变成乱码,这是因为 Eclipse 中的...