在IE8下使用JSON.stringify()出现中文乱码的问题

本文探讨了使用JSON2.js库时,在IE8浏览器中遇到的JSON.stringify方法导致中文字符乱码的问题。文章提供了两种解决方案,并通过测试代码验证了解决方案的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:


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>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值