AJAX中POST或GET传递中文字符乱码的解决办法(备忘)(0 位领导批示)
- 2009-05-6
- 分类:Ajax, JavaScript
- 作者:银子
- 1,082 位领导视察
用AJAX传递中文时..FF会很聪明的自动将中文字符转成十六进制.而BC的IE却非得自己处理..-____!!
最简单的方法就是在需要转义的地方使用JS的内置函数 encodeURIComponent
P.S.最初是用escape做中文转义..注意它与 encodeURIComponent 的区别
用AJAX传递中文时..FF会很聪明的自动将中文字符转成十六进制.而BC的IE却非得自己处理..-____!!
最简单的方法就是在需要转义的地方使用JS的内置函数 encodeURIComponent
P.S.最初是用escape做中文转义..注意它与 encodeURIComponent 的区别
今天写到的一个应用中用到了Ajax请求数据.
FF下一切正常.IE下却被顽固的页面缓存给难住了..必须要清理掉缓存才能正确重新请求数据
必须想办法解决Ajax在IE下的缓存问题
其实解决的方法很简单..就是创建httpRequest对象时加上这么一句
1 | xmlHTTP.setRequestHeader("If-Modified-Since","0"); |
这样缓存问题就轻松解决了..
AJAX传递中文字符串时必须把中文字符串编码成unicode,一般会用到JS的自带函数escape().不过找到了更好的函数来确决中文字符转换成unicode编码的函数
当然服务器端要对编码过的字符串进行第二次转码.把字符串转换成UTF-8编码.