原文链接:
http://hngmduyi.iteye.com/blog/1815221
最近用json2.js来做客户端的JSON提交,使用了JSON.stringify()方法,结果发送到服务器端的Json里的中文变成了乱码.
查了一下资料才知道IE8支持原生的JSON对象,自带了JSON.parse与JSON.stringify两个方法。当我使用json2里的Json.stringify方法里IE默认调用了IE8的stringify方法进行了uncode编码,致使传到服务器后中文变成了乱码。
解决办法1:把Json2.js里的JSON改下名称,改成JSON2,这样调用:JSON2.stringify();
解决办法2:
var answerStr= JSON.stringify(arr);
var o= JSON.parse( answerStr);
eval("var answerStr = '"+JSON.stringify(o)+"';");
方法1已试,完全可以.方法2未试!
转载注:实测在ie7/ie11下均正常,在ie8下会出现乱码,其他版本的ie不确定,且下述方法1可解决问题。
测试代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>测试网页</title>
</head>
<body>
<script type="text/javascript">
alert(JSON.stringify("测试"));
</script>
</body>
</html>