2010-04-15 98 views
0

我送與jQuery Ajax請求,和我有一個功能:在UTF-8jquery ajax編碼問題!

$('input').ajaxSuccess(function(e, xhr, settings) { 
    console.log(xhr.responseText); 
}); 

Ajax響應ARA俄文字母,所有服務器(Apache的,PHP)和文件爲UTF-8,但響應文本像這樣:

\u0421\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u043e \u0431\u0443\u043a\u0432! 

我怎麼能解碼這個字符爲正常的話?感謝幫助!

+0

謝謝大家,答案是非常有用的! – teMkaa 2010-04-15 17:35:36

回答

2

這是一個JavaScript字符串文字。有引號嗎?應該有:

"\u0421\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u043e \u0431\u0443\u043a\u0432!" 

是絕對相同的文字:

"Слишком мало букв!" 

假設有周圍的引號,我希望這是一個JSON響應。正常的ajax處理程序通常希望jQuery自動解碼它(但我不知道你在哪裏調用它)。

如果你真的需要解碼來自一個XMLHttpRequest對象JSON字符串手動這樣你就可以通過調用做到這一點:

var s= $.parseJSON(xhr.responseText); 

,或者,如果有周圍真的沒有引號:

var s= $.parseJSON('"'+xhr.responseText+'"'); 

雖然如果沒有引用會引起引用字符在響應中如何處理的問題。我希望它已經在字符串文字中使用了,但是從這裏的小信息是不可能的。

+0

俄語意爲「字母不夠」 – mkoryak 2010-04-15 17:34:27

+0

Спасибо! – bobince 2010-04-15 17:35:35

2

由於它是JSON,只是解析它

$('input').ajaxSuccess(function(e, xhr, settings) { 
    console.log($.parseJSON(xhr.responseText)); 
}); 
+0

+1提醒我你現在在jQuery中獲得parseJSON – bobince 2010-04-15 17:34:51