解决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 相关文章推荐
用jquery ajax获取网站Alexa排名的代码
Dec 12 Javascript
jQuery.getScript加载同域JS的代码
Feb 13 Javascript
jquery foreach使用示例
Sep 12 Javascript
js利用数组length属性清空和截短数组的小例子
Jan 15 Javascript
JS弹出新窗口被拦截的解决方法
Aug 09 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
Jul 29 Javascript
vue-cli2 构建速度优化的实现方法
Jan 08 Javascript
8 个有用的JS技巧(推荐)
Jul 03 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
JavaScript实现旋转木马轮播图
Mar 16 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 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&&mysql)三
2006/10/09 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Python语言描述最大连续子序列和
2017/12/05 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
一文读懂Python 枚举
2020/08/25 Python
python操作链表的示例代码
2020/09/27 Python
计算机本科生自荐信
2013/10/15 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
教师节晚会主持词
2015/06/30 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
python随机打印成绩排名表
2021/06/23 Python
简述Java中throw-throws异常抛出
2021/08/07 Java/Android