浏览器发起Get,Post请求时候传递的参数编码问题
浏览器发起Get,Post请求时候传递的参数编码问题
最近开发一个网站的时候,用了很多ajax方法,在页面发起Get,post请求,中间自然捎带有很多参数,有中文,有英文,英文一般是不存在编码问题的,中文就可能出现乱码的问题。
本来以为是开发环境的问题,但是设置各种编码也没有正常解决问题。还是用编码的方式来解决。
这是我 跟踪到的现象和解决方法
1.火狐浏览器,Google chrome浏览器
在开发的时候,一直用火狐浏览器,各种Get,Post传递中文,英文参数都没有问题。
2.IE浏览器。
在后期做兼容测试的时候,真正发现问题了,IE浏览器中Get请求的时候必须对中文参数进行Js编码(escape等),这样传递到后台才能正确显示。
(/cs后台代码在接收已经经过js编码的参数时候,无需反编码,直接使用就是正常的)
但是在Post的时候不用js编码(escape),就可以正常编码的形态传递到后台,
如果你在post的时候故意用了js编码,到后台的时候反而会乱码。