为什么json_encode会在这种情况下返回false?

时间:2015-02-24 13:20:45

标签: php ajax json

我有一个返回城市列表(以及其他一些数据)的函数

//after some logic
print_r($cities);
echo json_encode($cities);

在一个城市撤退之后print_r的结果,在这种情况下是麦德林市:​​

Array ( [0] => Array ( [id] => 1 [state_id] => 2 [name] => Medellín [propauthor] => 0 ) )

json_encode()只返回false

编辑: json_last_error()返回JSON_ERROR_UTF8,因为你可以看到城市可能有波浪号(重音符号)

1 个答案:

答案 0 :(得分:2)

来自PHP的json_last_error()的联机帮助页:

  

JSON_ERROR_UTF8格式错误的UTF-8字符,可能编码错误(PHP 5.3.3)

您必须确保提供给json_encode()的数据是UTF8,您应该尝试使用iconv将字符串转换为正确的格式。