解决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 相关文章推荐
分享一个自己写的table表格排序js插件(高效简洁)
Oct 29 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
Jan 09 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
jQuery ready()和onload的加载耗时分析
Sep 08 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
Dec 26 Javascript
js中的闭包学习心得
Feb 06 Javascript
JS 实现分页打印功能
May 16 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 Javascript
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
vue实现记事本功能
Jun 26 Javascript
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
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操作xml
2013/10/27 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python创建日历实例
2014/08/21 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Django分页功能的实现代码详解
2019/07/29 Python
Python requests模块session代码实例
2020/04/14 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
应届毕业生求职信范例分享
2013/12/17 职场文书
诚信考试倡议书
2014/04/15 职场文书
服务理念口号
2014/06/11 职场文书
销售员试用期自我评价
2014/09/15 职场文书
大学生个人简历自我评价
2015/03/11 职场文书
市场督导岗位职责
2015/04/10 职场文书
单位收入证明范本
2015/06/18 职场文书