3

在 Chrome 的控制台中使用时,我发现 Ext JS(版本 4.1)Ext.JSON.encode()和 Chrome(版本 21.0.1180.79)之间存在差异:JSON.stringify()

JSON.stringify({"title": "ä"})
> "{"title":"ä"}"

Ext.JSON.encode({"title": "ä"})
> "{"title":"\u00e4"}"

由于我想在浏览器中显示结果,我更喜欢 Chrome 的结果,但我知道我不能真正依赖 Chrome 在其他浏览器中的 JSON 处理。那么如何使用 Sencha 的 Ext JS 实现 Chrome 的效果呢?

4

2 回答 2

5

您可以在 Extjs 4 中将 Ext.USE_NATIVE_JSON 设置为 true。

于 2012-08-18T15:42:17.663 回答
1

您需要知道该值是相同的。\u00e4是字符ä的真正 utf-8 表示。Chrome 可能会输出解码后的ä以获得更好的用户体验,但在解码时,两个值是相同的:

JSON.stringify({"title": "ä"})
> "{"title":"ä"}"
Ext.JSON.encode({"title": "ä"})
> "{"title":"\u00e4"}"
JSON.parse('{"title":"ä"}')
> Object {title: "ä"}
Ext.JSON.decode('{"title":"\u00e4"}')
> Object {title: "ä"}
JSON.parse('{"title":"\u00e4"}')
> Object {title: "ä"}
Ext.JSON.decode('{"title":"ä"}')
> Object {title: "ä"}
于 2013-07-11T23:44:35.213 回答