最近在工作中,发现在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的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我使用函数对AJAX发送到PHP的JS对象进行字符串化处理。 当JSON.stringify函数将Unicode字符编码为格式(例如)时,就会出现问题。我的问题是如何在PHP中将这些字符转换为常规unicode字符? 问题答案: 看到输出UTF-16?有点卡住 这将转换为UTF-8:
问题内容: 我在UTF-8中有一个简单的测试页,其中带有多种不同语言字母的文本被字符串化为JSON: http://jsfiddle.net/Mhgy5/ HTML: JavaScript: 虽然我希望根据JSON规范将非ASCII字符转义为\ uXXXX ,但它们似乎未受影响。这是我从上述测试中获得的输出: 我使用的是Chrome,因此应该是本机实现。页面的编码为UTF-8。非ASCII字符不应
我有一个简单的UTF-8测试页面,其中包含多个不同语言字母的文本将字符串化为JSON: http://jsfiddle.net/Mhgy5/ 超文本标记语言: JavaScript: 虽然我希望根据 JSON 规范将非 ASCII 字符转义为 \uXXXX,但它们似乎未被触及。这是我从上面的测试中得到的输出: 我用的是Chrome,所以应该是本机实现,页面的编码是UTF-8,不是应该转义非ASCI
本文向大家介绍JS将unicode码转中文方法,包括了JS将unicode码转中文方法的使用技巧和注意事项,需要的朋友参考一下 原理,将unicode的 \u 先转为 %u,然后使用unescape方法转换为中文。 记得head标记中加入 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 以上就是本文的全部内容
问题内容: “ java.lang.Error:未解决的编译问题”的可能原因是什么? 附加信息: 从现有JAR顶部的版本复制一组更新的JAR文件并重新启动应用程序后,我已经看到了这一点。JAR是使用Maven构建过程构建的。 如果接口更改,我希望看到LinkageErrors或ClassNotFound错误。上面的错误提示存在一些较低级别的问题。 彻底的重建和重新部署解决了该问题。此错误是否表明J
本文向大家介绍js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码,包括了js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码的使用技巧和注意事项,需要的朋友参考一下 最近看不少在线工具里面都有一些编码转换的代码,很
本文向大家介绍jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题,包括了jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题的使用技巧和注意事项,需要的朋友参考一下 JSON 对象是在 ECMAScript 第 5 版中实现的,此版于 2009 年 12 月发布;IE6 IE7 与 IE8(Q) (IE8(Q) 相当于 IE 5.5) 发布
本文向大家介绍解决IDEA中编辑HTML格式文件不自动缩进问题,包括了解决IDEA中编辑HTML格式文件不自动缩进问题的使用技巧和注意事项,需要的朋友参考一下 在IntelliJ Idea中HTML格式化时,默认<head><body>以及<body>下的标签都不会缩进,这就导致你每次写好html时候格式化的时候所有标签都是同一层级没有缩进,一般我们写html都会层级关系标签嵌套,通过缩进看代码结