gpt4 book ai didi

javascript - 如何纠正IE8原生json中的字符编码?

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:27 43 4
gpt4 key购买 nike

我正在使用带有 unicode 文本的 json,但 IE8 原生 json 实现有问题。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<script>
var stringified = JSON.stringify("สวัสดี olé");
alert(stringified);
</script>

使用 json2.js 或 FireFox 原生 json,alert() 字符串与原始字符串相同。另一方面,IE8 返回 Unicode 值而不是原始文本 \u0e2a\u0e27\u0e31\u0e2a\u0e14\u0e35 ol\u00e9 。有没有一种简单的方法可以使 IE 的行为与其他 IE 一样,或者将此字符串转换为它应该的样子?你会认为这是 IE 中的错误吗,我认为 native json 实现应该是 json2.js 的直接替代品?

编辑:使用上述代码在 jsfiddle 上进行重现 - http://jsfiddle.net/vV4uz/

最佳答案

回答我自己的问题 - 显然这在 IE8 中是不可能的,但它在 IE9 Beta 中可以正常工作。

A fix虽然是可能的:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<script>
var stringified = JSON.stringify("สวัสดี olé");
stringified = unescape(stringified.replace(/\\u/g, '%u'));
alert(stringified);
</script>

这将在所有 IE、FF 和 Chrome 上正确地 alert() 返回原始字符串。

关于javascript - 如何纠正IE8原生json中的字符编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2570757/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com