最近我在使用ajax请求返回json格式的数据时,出现了汉字问号的问题。
我首先检查了服务器端返回的json格式数据,发现中文并没有问题,所有的汉字都是正常的。然后我想到可能是编码的问题,于是我修改了ajax请求的contentType属性为"application/json;charset=utf-8",但结果仍然是汉字问号。
$.ajax({ type: "GET",dataType: "json",url: "example.com",contentType: "application/json;charset=utf-8",success: function (data) { // do something },error: function (xhr,status,error) { // handle error } });
接着,我仔细检查了一下我的JavaScript文件,发现我使用了unescape函数来解析json字符串,导致汉字被转义为问号。unescape函数在ECMAScript 3已经被废弃,因此我使用了decodeURIComponent来代替。
$.ajax({ type: "GET",success: function (data) { var decodedData = JSON.parse(decodeURIComponent(JSON.stringify(data))); // do something with decodedData },error) { // handle error } });
最后,我成功解决了ajax返回json汉字问号的问题,感觉收获颇丰!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。