使用getJSON
检索一些我在服务器端编码的数据...
"title":"new movie \u0091The Tree of Life\u0092 on day 6"
显示的页面是charset ISO-8859-1
,我这样做......
$.getJSON('index.php', { q: q }, function(data){
for (var i = 0; i < data.length; i++) {
alert(data[i].title + "\n" + utf8_decode(data[i].title));
}
});
utf8_decode
功能来自here。
问题是我仍然看到两个版本的魔术方块......
新电影第6天的生命之树
新电影“生命之树”第6天
这让我相信这个角色可能既没有编码也没有编码。但是,如果我将字符串粘贴到页面上并将字符集设置为UTF8或ISO-8859-1,它就可以工作: - /
任何帮助都会很棒!
答案 0 :(得分:3)
无需转义或解码以JSON格式传输的数据中的任何字符。它是自动完成的。它也独立于页面的编码。即使ISO-8859-1不包含欧元符号,您也可以轻松地使用您的代码传输和显示欧元符号(\u20ac
)。
您的问题是字符\u0091
和\u0092
。它们不是有效的Unicode字符。它们仅供私人使用。
看起来好像你实际上拥有最初使用Windows-1250字符集但未正确转换为Unicode / JSON的数据。在Windows-1250中,这两个字符是印刷单引号。
答案 1 :(得分:0)
您是否尝试过没有 utf8_decode? p>
如果字符串中的字符存在于ISO-8859-1中,那么这将起作用,因为Javascript会对页面编码中的\u0091
进行解码。