解决JSON.stringify()自动将中文转译成unicode的问题


Posted in Javascript onJanuary 05, 2018

最近在工作中,发现在IE8下JSON.stringify()自动将中文转译为unicode编码,原本选择的中文字符,传到后台变为了unicode编码,即\u****的形式。查找资料后发现,与标准的JSON.stringify()不同,IE8内置的JSON.stringify()会自动将编码从utf-8转为unicode编码,导致出现这种类似于乱码的情况。

解决方法分为两种,第一种是后台接收到数据之后,将该数据再进行一次转码,重新转为utf-8,然后再保存到数据库中,这样,再次从数据库取出传给前端的数据将变成utf-8格式(即正常的中文)。第二种则是不管在IE8下还是高级浏览器中,使用eval()统一进行转码,最后的结果都为utf-8编码。

本文主要讲解第二种方法,即使用eval()转码的方法。在MDN上,eval()的解释是:eval()的参数是一个字符串。如果字符串表示的是表达式,eval()会对表达式进行求值。如果参数表示一个或多个JavaScript语句, 那么eval()就会执行这些语句。

var a = "吃翔翔";
var unicodeJsonA = JSON.stringify("a");//unicode
var jsonA = eval('(' + unicodeJsonA + ')');
//utf-8

如上代码,通过eval()执行,强行将unicode转码为utf-8,无论JSON.stringify()后出来的结果是utf-8还是unicode,统一转为utf-8格式。

其实,解决的方法还有第三种——使用json2.js中的JSON.stringify()代替IE8的JSON.stingify()。但是,当有浏览器自带的JSON对象时,会启用浏览器自带的JSON对象代替json2.js中的JSON对象。为了解决这个问题,可以将json2.js中的JSON对象改为JSON2对象,即将JSON.stringify()改为JSON2.stringify()。

以上几种方法皆可解决IE8下自动将中文转译为unicode的问题。

以上这篇解决JSON.stringify()自动将中文转译成unicode的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 兼容firefox的一些问题
May 21 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
Jul 31 Javascript
深入分析jquery解析json数据
Dec 09 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 Javascript
jQuery each和js forEach用法比较
Feb 27 jQuery
vue-cli3 配置开发与测试环境详解
May 17 Javascript
JS 封装父页面子页面交互接口的实例代码
Jun 25 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
Jul 13 Javascript
vue脚手架中配置Sass的方法
Jan 04 #Javascript
Angular4学习教程之HTML属性绑定的方法
Jan 04 #Javascript
JS基于for语句编写的九九乘法表示例
Jan 04 #Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 #Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 #Javascript
JS实现简易换图时钟功能分析
Jan 04 #Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 #Javascript
You might like
最令PHP初学者头痛的十四个问题
2006/07/12 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
JavaScript中Function详解
2015/02/27 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python简单获取数组元素个数的方法
2015/07/13 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
浅谈Python3中print函数的换行
2020/08/05 Python
python操作链表的示例代码
2020/09/27 Python
幼儿园大班毕业教师寄语
2014/04/03 职场文书
宣传标语大全
2014/07/01 职场文书
股东授权委托书范文
2014/09/13 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫