PHP json_decode返回null

时间:2014-04-04 12:31:56

标签: php utf-8 json

我在google和stackoverflow中搜索了很多,但找不到解决方案。

我有以下json来自DB:

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

正如您所看到的,有一些utf8字符未保存为unicode。 当我尝试解码这个json时,它返回 null ,json_last_error返回 5

有没有人有解决方案?

2 个答案:

答案 0 :(得分: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);
?>

答案 1 :(得分:1)

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