IE8下json.js 中文编码问题

原本需求是这样的:
有个AJAX的操作,需要传递表单数据,但是表单内容的name都是以answer[]命名,所以想把数据以为数组json化后传递 (用到了json2.js)

var answerStr = JSON.stringify(arr);

之前一直 跑得好好的,结果今天内务接到投诉电话,说试卷提交后答案全部乱码

如: “ u5c71u7f8a ”… 那边用google浏览器也是坏的,而我的google 又是好的,

后来到网上找了一下,原来出现错误是因为IE8内置有 JSON.parse()和JSON.stringify() 两个方法
而这和json2.js的方法重名

解决方法1:

 var answerStr = JSON.stringify(arr);   
 var o = JSON.parse( answerStr); 
 eval("var answerStr = '"+JSON.stringify(o)+"';");    //这是中文的ASCII码,利用eval转换

解决办法2:把Json2.js里的JSON改下名称,改成JSON2,这样调用:JSON2.stringify();

posted on 2011-04-04 10:58  J-Pei  阅读(2135)  评论(2编辑  收藏  举报

导航