2014-03-06 3 views
0

내 응용 프로그램에서 쿼리 결과를 보려면 json 웹 사이트로 파싱하려고합니다. 문제가 있습니다. 때로는 null 문자열을 표시했기 때문에 json_encode을 사용하여 결과를 표시했습니다. 이 코드 부분을 사용합니다.Json_encode 액센트 문제

$json = array(); 

if(mysql_num_rows($result)){ 
while($row=mysql_fetch_assoc($result)){ 
$json['oscar'][]=$row; 

$json[] = array_map('utf8_encode', $row); 
} 
} 

mysql_close($con); 
echo json_encode($json); 

이렇게하면 악센트가 잘못 표시 될 수 있습니다. 예 :

Mor\u00ec would be Morì 

기타 등등 여기에서 http://www.oscarilfilm.com/newjson.php을 볼 수 있습니다. 문제를 어떻게 해결할 수 있습니까?

+0

이 데이터베이스가 UTF8 인코딩으로 값을 저장합니까 : 당신이 당신의 페이지의 바로 태초에이 줄을 추가 시도 할 수 UTF-8의 응답을 보려면? – FAS

+0

나는 정직하기 위하여 wordpress와 PhpMyAdmin를 사용하고있다. 나는 모른다. 나는 어떻게 검사 할 수 있는가? 그리고, 경우에, 수정? –

+0

EDIT : wp-config.php 파일에서이 줄을 발견했습니다 :'define ('DB_CHARSET', 'utf8'); ' –

답변

0

PHP 인코딩의 추가 인수를 사용해 보셨습니까? 예를 들어

$json = array(); 

if(mysql_num_rows($result)){ 
    while($row=mysql_fetch_assoc($result)){ 
     $json['oscar'][]=$row; 
     $json[] = array_map('utf8_encode', $row); 
    } 
} 

mysql_close($con); 
echo json_encode($json); 

이 변경됨

$json = array(); 

if(mysql_num_rows($result)){ 
    while($row=mysql_fetch_assoc($result)){ 
     $json['oscar'][]=$row; 
     $json[] = array_map('utf8_encode', $row); 
    } 
} 

mysql_close($con); 
echo json_encode($json, JSON_UNESCAPED_UNICODE); 

이것을 page에 도시 된 바와 같이.

편집 :

<?php header("Content-Type: text/html; charset=utf-8"); ?> 
+0

코드를 간단히 추가 하시겠습니까? –

+0

아니요, "echo json_encode ($ json);" 으로 변환합니다. "echo json_encode ($ json, JSON_UNESCAPED_UNICODE);" –

+0

나는 이해하기 쉽게 대답을 편집했다. –