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

格子熊      2022-02-16     501

关键词:

  最近在工作中,发现在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 将 Infinity 转换为 null

】JSON.stringify将Infinity转换为null【英文标题】:JSON.stringifyconvertingInfinitytonull【发布时间】:2013-05-1417:17:33【问题描述】:我有JavaScript对象说:vara=b:Infinity,c:10;当我这样做时varb=JSON.stringify(a);它返回以下内容b=""b":null,"c":10";JSON.stri... 查看详情

JSON.stringify 将 Infinity 转换为 null

】JSON.stringify将Infinity转换为null【英文标题】:JSON.stringifyconvertingInfinitytonull【发布时间】:2013-05-1417:17:33【问题描述】:我有JavaScript对象说:vara=b:Infinity,c:10;当我这样做时varb=JSON.stringify(a);它返回以下内容b=""b":null,"c":10";JSON.stri... 查看详情

json.stringify出现"convertingcircularstructuretojson"

JSON.stringify() 我们很熟悉了,将一个对象转换为json形式的字符串. 但是如果你在浏览器控制台中输出 JSON.stringify(window).如果期望输出一段文字,可能会失望了.事实上,会输出结果如下: 错误信息很明显了,对象中有循环... 查看详情

vue-路由传一个object参数,刷新页面后数据变成“[objectobject]“解决方案

...解决方案解决方案: 使用 JSON 转译传参:JSON.stringify()letvideoObj=JSON.stringify(obj);this.$router.push(name:"playVideo",params:video:videoObj,);接收参数:JSON.parse()this.video=JSON.parse(this.$route.params.video);console.log(this.video) 查看详情

json.stringify详解

参考技术A当我们使用JSON.stringify()序列化一个值为JSON字符串,只有JSON安全的值才可以通过JSON.stringify()转换为字符串。那么,什么是JSON安全的值?能够有效用JSON形式表示的任何值。非JSON安全的值,例如:undefined、function和symbol... 查看详情

JSON.parse(JSON.stringify(e)) 将对象转换为字符串

】JSON.parse(JSON.stringify(e))将对象转换为字符串【英文标题】:JSON.parse(JSON.stringify(e))convertsobjecttoastring【发布时间】:2020-04-1616:03:49【问题描述】:我们正在将onetrustcookie同意脚本集成到TYPO3网站中。在由另一个CMS运行的子页面上... 查看详情

使用 JSON.stringify 将冒号转换为 unicode

】使用JSON.stringify将冒号转换为unicode【英文标题】:JSON.stringifyconvertscoloninsidestringtoaunicodecharacter[closed]【发布时间】:2021-09-1319:23:50【问题描述】:我在javascript中有一个对象,像这样time:"YYYY-MM-DDT00:00:00.000Z@YYYY-MM-DDT23:59:59.999Z"当... 查看详情

json.stringify(),json.parse(),tojson()方法使用

JSON.stringify():将value(Object,Array,String,Number...)序列化为JSON字符串JSON.parse():将JSON数据解析为js原生值toJSON(),作为JSON.stringify中第二个参数(函数过滤器)补充,理解内部顺序很重要。假设把一个对象传入JSON.stringify()序列化对象的顺序如... 查看详情

使用 JSON.stringify 将对象转换为字符串显示空对象 [重复]

】使用JSON.stringify将对象转换为字符串显示空对象[重复]【英文标题】:convertobjecttostringusingJSON.stringifyshowemptyobject[duplicate]【发布时间】:2018-12-0918:49:00【问题描述】:我正在尝试使用JSON.stringify将对象转换为字符串,但我得到了... 查看详情

如何将 JSON.stringify 显示为 HTML 作为值

】如何将JSON.stringify显示为HTML作为值【英文标题】:HowtodisplayJSON.stringifytoHTMLasvalues【发布时间】:2021-11-2520:52:56【问题描述】:我尝试使用json获取数据,并且它按我的意愿工作。但问题是如何在我的页面或HTML上显示它?我得到... 查看详情

浅谈js中的json.stringify()和json.parse()

参考技术A我们知道,JSON.stringify()和JSON.parse()是一对处理JSON数据的方法,前者是将JSON对象序列化为字符串,而后者是将JSON字符串解析为JSON对象。但是你有较为深入地去了解过它们吗?它们分别可以传入几个参数以及每个参数对... 查看详情

json.parse()与json.stringify()

...每个属性名都必须用双引号,否则会抛出异常。 JSON.stringify将JSON对象转换为字符串vara={a:1,b:2}JSON.s 查看详情

json.stringify函数

摘抄,好酷的json.stringifyJSON.stringify函数(JavaScript) 将JavaScript值转换为JavaScript对象表示法(Json)字符串。语法   JSON.stringify(value[,replacer][,space])参数 value必需。  要转换的JavaScript值(通常 查看详情

json.parse和json.stringify的作用

...意:str每个属性名都必须是双引号,不然会报错;//JSON.stringify()将一个json对象转化成字符串格式v 查看详情

如何正确使用 JSON.stringify 和 json_decode()

】如何正确使用JSON.stringify和json_decode()【英文标题】:howtouseJSON.stringifyandjson_decode()properly【发布时间】:2013-04-0520:36:46【问题描述】:我试图通过以下方式将多维Javascript数组传递到我网站上的另一个页面:在数组上使用JSON.strin... 查看详情

json.stringify函数

作用:将对象(JSON对象)转换成字符串(JSON字符串)例子:varperson=newObject();person.name="zhangan";person.age="20";console.info(person);//Object{name:"zhangan",age:"20"}console.info(JSON.stringify(person));//{"name":"zhanga 查看详情

使用本机数据类型将表单输入自动编码为 JSON

...问题描述】:我知道(来自this)我可以在将值传递给JSON.stringify之前将其显式转换为整数。但是当您想要序列化表单数据时,这种方法没有用。我有一个通用代码:letmyform=\'#my_form_id`;$(m 查看详情

将 JSON.stringify 与 TypeScript getter/setter 结合使用

】将JSON.stringify与TypeScriptgetter/setter结合使用【英文标题】:UsingJSON.stringifyinconjunctionwithTypeScriptgetter/setter【发布时间】:2017-02-2602:07:00【问题描述】:我在TypeScript中使用getter/setter访问器。由于变量和方法不可能有相同的名称,... 查看详情