2013-05-12 5 views
2

나는 간단한 PHP 스크립트 마녀 문자열을 얻고있는 JSON 문자열을 반환 쓰기 시도.JSON PHP 인코딩 문제

모든 데이터베이스와 양식 및 HTML이 문서에 따라 설정한다. http://kunststube.net/frontback/

그리고 그것은 잘 작동 :

  1. 양식 전송 문자열은 데이터베이스에 /러시아의 일본어/
  2. 그런 다음 그것을 찾을 무엇이든, 유사한 문자열에 writen 텍스트와 PHP로.

하지만. 내가 JSON이 문자열을 인쇄 할 때 :

$data = array('success'=> true,'message'=>$row['phrase']); 
echo json_encode($data); 

내가/

echo $row['phrase']; 

그것이 일본어/러시아어 정상 문자열을 반환 인쇄 할 때이 {"success":true,"message":"\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0438\u0442"}

처럼 나에게 뭔가를 반환 어떤

제안 사항이 있으십니까?

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\ UPDATE \\\\\\ \\\\\\\\\\\ ///////////////////////////////////////////////////////////////////

////////////////////////

I이 기능은 실행 필드

필드 인 변화가

$(document).ready(function(){ 

    $('#mike').bind('webkitspeechchange',function() 
    { 

     a= $(this).val(); 
     recognizeAjax(a); 

}) ; 
}); 


function recognizeAjax(string) { 

    var postData ="string="+string; 

    $.ajax({ 
     type: "POST", 
     dataType: "text", 
     data: postData, 
     beforeSend: function(x) { 
      if(x && x.overrideMimeType) { 
       x.overrideMimeType("application/json;charset=UTF-8"); 
      } 
     }, 
     url: 'restURL.php', 
     success: function(data) { 
      // 'data' is a JSON object which we can access directly. 
      // Evaluate the data.success member and do something appropriate... 
      if (data.success == true){ 
       alert(data.message); 
      } 
      else{ 
       alert(data.message+'11111'); 
      } 
     } 
    }); 


} 

그리고 여기 내 PHP입니다

(자바 스크립트에 따라)

하지만 난 항상 undefied11111 경고를받을 수는

그래서 나는 새로운 분야를

<form method="post" id="wer" action="restURL.php" accept-charset="utf-8"> 
    <input name="www" style="position: relative;" lang="ru" /> 
    <input type="submit"> 
</form> 

을했다 그리고 그것은 { "성공"내게는 true, "메시지": "\ u0441 \ u043a \ u043e \ u043b \ u044c \ u043a \ u043e \ u0441 \ u0442 \ u043e \ u0438 \ u0442 "} 문자열이 맞을 때. JSON에서

+2

이것이 유니 코드 문자가 JSON으로 표현되는 방법입니다. – Barmar

+0

그럼 어떻게 정상적인 charecters에서 볼 수 있습니까? –

+0

나는 내 PHP에 이것을 가지고 헤더 ('Content-Type : text/html; charset = utf-8'); –

답변

1

, \uXXXX는 결과 문자열은 ASCII 안전 있도록 유니 코드 문자를 인코딩하는 방법입니다. 예를 \u0441를 들어

그냥 키릴 소문자 ES입니다. 엄밀히 말하면 이러한 문자를 인코딩 할 필요는 없지만 그렇게하면 더 안전합니다.