2012-07-18 36 views
0

jQuery無法解析似乎是包含法國c-cedilla字符的有效json響應。jquery無法解碼json與c-cedilla

jQuery的JSON請求是這樣的:

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

Sever的發送這樣的響應:

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

jQuery的失敗,抱怨因爲在貝科的c變音符號的無效字符。如果我只是檢查瀏覽器中的原始json響應,那麼返回正常。到目前爲止,我的所有調查都表明這應該起作用,所以我不知道如何進一步採取行動。

經過進一步審查...「trist」字段的值本身就是json對象;換句話說,「trist」的值旨在提取爲一個字符串,然後再解析爲一個Lines對象。也許這個內部JSON不正確的UTF-8編碼?也許那個內在的json需要以某種方式「逃脫」。

+0

你是否嘗試過使用不同的輸出而沒有任何奇怪的字符? – Onheiron 2012-07-18 07:10:46

+0

我不確定那些逃脫的引號。如果你使用像UTF-8這樣的字符集,這將是一個有效的JSON字符串響應:''{「trist」:{「Lines」:[{「C」:「Director:Beça」}]}'' – devnull69 2012-07-18 07:18:36

+0

啊,所以我必須'逃避我逃脫的'來解釋星球大戰。我正在努力解決現在如何做到這一點。好像我可能不得不手動編寫json而不是使用jsonWriter。 – LineloDude 2012-07-18 10:11:58

回答

0

問題是編碼網頁上的不匹配。一旦我將服務器設置爲使用UTF-8進行響應,並將網頁charset標頭設置爲UTF-8,它就可以正常工作。感謝任何看過這個的人,包括devnull69的評論讓我重新參與。