解决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 相关文章推荐
Opacity.js
Jan 22 Javascript
js下用gb2312编码解码实现方法
Dec 31 Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 Javascript
JavaScript+canvas实现七色板效果实例
Feb 18 Javascript
ECMAScript6快速入手攻略
Jul 18 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
Aug 15 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 Javascript
vue项目中公用footer组件底部位置的适配问题
May 10 Javascript
JS中使用new Option()实现时间联动效果
Dec 10 Javascript
深入浅出vue图片路径的实现
Sep 04 Javascript
JavaScript 常见的继承方式汇总
Sep 17 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
收音机术语解释
2021/03/01 无线电
PHP5 安装方法
2007/01/15 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
jQuery Validate验证框架经典大全
2015/09/23 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
Python中常见的数据类型小结
2015/08/29 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Python: 传递列表副本方式
2019/12/19 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
大学生毕业自我评价范文分享
2013/11/07 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
雷锋的观后感
2015/06/10 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
CSS3实现指纹特效代码
2022/03/17 HTML / CSS