今天做了一个小模块的时候发现了从前端浏览器用JQuery传值用($.post)来传中文,在页面也设置了浏览器的编码方式,但是到后台去获取值得时候却出现了乱码。
ie浏览器下用Jquery.post请求时乱码
火狐浏览器下用Jquery.post请求正常显示
在Jquery.js里面的编码方式charset=utf-8;也做了设置
在java后台也设置了编码方式,包括请求request,以及响应头Response均设置了编码格式
全部统一为UTF-8格式 包括tomcat的设置
利用encodeURI两次编码然后到java后台解码是没有问题的;
开发工具也做了编码的,全部统一为UTF-8格式
在javascript 中用window.open();的方式来请求是没有乱码的问题的,在超链接上也没有发现乱码问题。
配置:jdbc+struts2
浏览器是IE9 IE8 AND 火狐;用的jquery是1.9.1
我想问的问题是:
1.我想明白是不是IE浏览器的问题?
2.是不是和jquery有问题,我也换过1.5的版本,同样也是乱码,现在用的是1.9.1.min版的
3.在请求的时候,做过一次调试,发现出现了两个请求,一个是post,另外一个是get,我现在还在研究中。
4.谁有过类似的问题都来说一下。
补充一下内容:在IE9或者IE8下修改编码方式为GB2312的情况下传值到后台又不出现乱码了,
但是结合上面的问题总感觉矛盾,从页面为UTF-8为统一的编码方式到后台也是采用的UTF-8格式
为什么修改浏览器编码为GB2312才会不显示乱码,修改之后页面是乱码了,但是传值没有出现乱码。
而且感觉不符合逻辑。