0

jQuery 无法解析包含法语 C-cedilla 字符的有效 json 响应。

jQuery json 请求是这样的:

$.ajax({
    url: "retrieve",
    dataType: 'json',
    success: function (x) { },
    error: function (jqXHR, textStatus, errorThrown) { });

服务器发送此响应:

{
    "trist":"{\"Lines\":[{\"C\":\"Director: Beça\"}]}"
}

jQuery 失败,因为 Beça 中的 c-cedilla 而抱怨无效字符。如果我只检查浏览器中的原始 json 响应,就会恢复正常。到目前为止,我的所有调查都表明这应该是可行的,所以我不知道如何进一步发展。

经过进一步审查......“trist”字段的值本身就是json对象;换句话说,“trist”的值旨在提取为字符串,然后解析为 Lines 对象。也许那个内部 json 没有正确 utf-8 编码?也许内部 json 需要以某种方式“转义”。

4

1 回答 1

0

问题是网页上的编码不匹配。一旦我将服务器设置为使用 UTF-8 进行响应并将网页字符集标头设置为 UTF-8,一切正常。感谢所有查看此内容的人,包括 devnull69,他们的评论让我重新参与其中。

于 2012-07-18T16:56:33.703 回答