2014-04-04 170 views
0

我在google和stackoverflow中搜索了很多,但是找不到解决方案。PHP json_decode返回null

我有以下的JSON从DB来:

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

正如你所看到的,也有未保存为Unicode UTF8一些字符。 当我尝试解码这个json时,它返回null和json_last_error返回。

有没有人有解决方案?

+0

错误5是'JSON_ERROR_UTF8'。我认为你需要以其他方式格式化字符''(如果可能的话)。 – 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

如果不行,或者你可以使用iconv您stirng转换为UTF-8和解码等;

<?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

尝试

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

这工作完美!非常感谢! :) –

+0

你的欢迎:) –