解决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初学者常用技巧
Sep 02 Javascript
使用js实现数据格式化
Dec 03 Javascript
javascript正则表达式之search()用法实例
Jan 19 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
jQuery实现简单二级下拉菜单
Apr 12 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
谈一谈javascript中继承的多种方式
Feb 19 Javascript
第一次接触JS require.js模块化工具
Apr 17 Javascript
深入理解JQuery中的事件与动画
May 18 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
Jun 02 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
Apr 24 Javascript
浅析Vue中拆分视图层代码的5点建议
Aug 15 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
php session安全问题分析
2011/06/24 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
javascript 节点排序 2
2011/01/31 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
python右对齐的实例方法
2020/07/05 Python
物流管理毕业生自荐信
2013/10/24 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
电子商务求职信
2014/06/15 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
挂职个人工作总结
2015/03/05 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
《游戏公平》教学反思
2016/02/20 职场文书