解决IE8下JSON.stringify()自动将中文转译成unicode的方法

时间: 2018-01-05阅读: 2366标签: json

最近在工作中,发现在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的问题

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/323

json常用的注解

@JsonIgnoreProperties:此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。写法将此标签加在model 类的类名上 ,可以多个属性也可以单个属性

那些你不知道的JSON.stringify()的用处

一般情况下,我们使用JSON.stringify() 是为了将一个对象转为字符串输出。第一个参数是我们要字符串化的对象或者数组,但是其实它还有第二个/第三个参数哦

解析Json字符串的三种方法

在很多时候,我们的需要将类似 json 格式的字符串数据转为json,下面将介绍日常中使用的三种解析json字符串的方法

sublime 格式化Json

最近做数据匹配任务,需要生成很多json文件,但是每个json文件又太大,想要逐字段(key)检查,实在是太费眼,而且容易看错。因此每次生成的json文件,用sublime或者vscode将json数据格式化

js实现json数据格式化及压缩

经常写代码就免不了与json这种轻量级的数据打交道,一般我们得到的json字符串是混乱的,计算机不在乎,再乱它都能认识,作为人类,虽然也能认识,但识读起来比较困难。

什么是JSON?如何使用?它比BSON更好吗?

长话短说:如果你想知道JSON——它是什么,如何使用它以及它和BSON哪个更好,那么你来对地方了。在本文中,我们将探讨这些缩写字母代表什么意思,以及这些格式在编程和数据库世界中有什么作用。

JSON.stringify()的不常见用法

JSON.stringify()只序列化可遍历属性(enumerable=true);JSON.stringify(obj, fn|arr);JSON.stringify(obj,null,number|string) 可以接受第三个参数,这个可以用来按格式打印对象

Js中json对象与json字符串相互转换的几种方式

使用JSON.stringify()方法进行转换,JSON字符串转化为JSON对象使用 eval() 转换时需要在 json 字符外包裹一对小括号。使用JSON.parse()方法进行转换ie8(兼容模式)、ie7、ie6 不要使用此方法。

js中Json相关知识

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。JSON与JS对象互转要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法, 要实现从JS对象转换为JSON字符串,使用 JSON.stringify()

聊聊JSON Schema

json现在已经成为比较通用灵活的数据交换格式,尤其是在web方面,总是少不了它的身影,js原生就支持它。网页中与服务器中和服务器交换信息也基本上式基于json的。在现在的开发中,特别是在前后端分离的开发中,后端提供接口,前端通过接口拿取数据;

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!