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

問題は、Web ページのエンコードの不一致でした。UTF-8 で応答するようにサーバーを設定し、Web ページの文字セット ヘッダーを UTF-8 に設定すると、すべて正常に機能しました。devnull69 を含め、これを見てくれたすべての人に感謝します。

于 2012-07-18T16:56:33.703 に答える