2014-04-04 18 views
0

Google 및 stackoverflow에서 많이 검색했지만 해결책을 찾을 수 없습니다.PHP json_decode가 null을 반환했습니다.

내가 DB에서 나오는 다음과 같은 JSON했습니다 : 당신이 볼 수 있듯이

{"nome":"Tést","curso":"Educação Infantil","serie":"1ª Etapa 1011"} 

을 유니 코드로 저장되지 않은 일부 UTF8의 문자가 있습니다. 그리고이 json을 디코딩하려고하면 null을 반환하고 json_last_error는 을 반환합니다.

해결책이있는 사람이 있습니까?

+0

입니다보십시오. 나는 당신이 문자를 다른 방법으로 (어떤 식 으로든) 포맷팅 할 필요가 있다고 생각한다. – Padarom

+0

어떤 PHP 버전을 사용하십니까? –

+0

PHP 5.3.3-7을 사용하고 있습니다. –

답변

3

다음과 같이 사용하십시오. 작은 따옴표로 사용하십시오. 여기

$a = '{"nome":"Tést","curso":"Educação Infantil","serie":"1ª Etapa 1011"}'; 
var_dump(json_decode($a)); 

데모 노력하고 있습니다 : 작동하지 않으면 codepad

, 또는 당신은 UTF-8로 stirng 변환과 같은 디코딩 iconv을 사용할 수 있습니다;

<?php 
$a = '{"nome":"Tést","curso":"Educação Infantil","serie":"1ª Etapa 1011"}'; 
$a = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($a)); 
$json = json_decode($a); 
var_dump($json); 
?> 
+0

네가 저에게 잘 맞습니다 !! –

+1

나를 위해 작동하지 않습니다 –

+0

@ RakeshSharma 어떻게? 데모를 제공했습니다. 데모 작업을하지 않습니까? –

1

오류 5 'JSON_ERROR_UTF8`이

$utfstr= mb_convert_encoding($str ,"UTF-8"); 
$output = json_decode($utfstr, true); 
+0

이것은 완벽하게 작동했습니다! 고마워요! :) –

+0

환영합니다 :) –

관련 문제