2010-04-15 10 views
0

내가 jQuery로 AJAX 요청을 전송하고, 내가하는 기능이 있습니다 UTF-8jquery ajax 인코딩 문제!

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

Ajax 응답 제단 러시아어 문자, 모든 서버 (아파치, PHP는) 파일은 UTF-8에 있지만 응답 텍스트입니다 다음과 같이 입력하십시오 :

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

어떻게이 문자를 일반 단어로 디코딩 할 수 있습니까? 도와 주셔서 감사합니다!

+0

감사 모두를 구문 분석, 모든 대답은 매우 유용합니다! – teMkaa

답변

2

이것은 JavaScript 문자열 리터럴입니다. 그 주위에 따옴표가 있습니까? 가 있어야한다 :

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

은 문자 그대로 절대적으로 동일하다 : 나는 이것이 JSON 응답 것으로 기대 주위 따옴표가있는 가정

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

. 일반 아약스 처리기는 일반적으로 자동으로 jQuery가이를 디코드 할 것으로 기대합니다 (그러나 내가 어디에서 호출하는지 모릅니다).

var s= $.parseJSON('"'+xhr.responseText+'"'); 
: 주위 정말 따옴표가있는 경우,

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

또는 : 당신이 정말 XMLHttpRequest 객체에서 JSON 문자열을 디코딩해야하는 경우

수동으로이 같은 당신은 호출하여 작업을 수행 할 수 있습니다

그러나 따옴표로 묶지 않으면 응답에서 인용 문자가 어떻게 처리되는지에 대한 질문이 제기됩니다. 문자열 리터럴을 사용하여 이미 이스케이프 처리했으면 좋겠지 만 여기서 작은 정보로는 말할 수 없습니다. 이 JSON을 이래로

+0

러시아어로 "문자가 충분하지 않다"는 의미입니다. – mkoryak

+0

Спасибо! – bobince

2

, 그냥

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

+1 jQuery에서 parseJSON이 표시됨을 알리는 +1 – bobince