解决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 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
JavaScript实现级联菜单的方法
Jun 29 Javascript
动态加载JavaScript文件的两种方法
Apr 22 Javascript
基于JS实现数字+字母+中文的混合排序方法
Jun 06 Javascript
jQuery过滤选择器经典应用
Aug 18 Javascript
Bootstrap栅格系统学习笔记
Nov 25 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
vue实现点击按钮下载文件功能
Oct 11 Javascript
如何用JS实现简单的数据监听
May 06 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
Smarty保留变量用法分析
2016/05/23 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
简单实例处理url特殊符号&处理(2种方法)
2013/04/02 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
python实现求最长回文子串长度
2018/01/22 Python
Django如何自定义分页
2018/09/25 Python
pycham查看程序执行的时间方法
2018/11/29 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
致1500米运动员广播稿
2014/02/07 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
营销计划书
2015/01/17 职场文书
岳麓书院导游词
2015/02/03 职场文书
js之ajax文件上传
2021/05/13 Javascript
go xorm框架的使用
2021/05/22 Golang