mik*_*kel 7 javascript unicode encoding internet-explorer json
我正在使用带有unicode文本的json,并且我遇到了IE8本机json实现的问题.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
var stringified = JSON.stringify("?????? olé");
alert(stringified);
</script>
Run Code Online (Sandbox Code Playgroud)
使用json2.js或FireFox本机json,alert()字符串与原始字符串相同.另一方面,IE8返回Unicode值而不是原始文本\u0e2a\u0e27\u0e31\u0e2a\u0e14\u0e35 ol\u00e9.是否有一种简单的方法可以使IE的行为与其他行为相同,或者将此字符串转换为应该如何?你会认为这是IE中的一个错误,我认为原生json实现应该是json2.js的相同替代品吗?
编辑:使用上面的代码重写jsfiddle - http://jsfiddle.net/vV4uz/
回答我自己的问题 - 显然这在IE8中本身不可能,但它在IE9 Beta中可以正常工作.
一个修复是可能的,但:
<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>
Run Code Online (Sandbox Code Playgroud)
这将正确警告()返回所有IE,FF和Chrome上的原始字符串.
| 归档时间: |
|
| 查看次数: |
6846 次 |
| 最近记录: |