PHP 5.5升级破坏了这个简单的阵列/ JSON编码器

时间:2014-10-08 15:46:41

标签: php arrays json

我刚刚从5.3.x升级到5.5.17,以下代码停止工作(我得到一个空白的回复)。

$gestr = mysql_query("SELECT name,age,id FROM users");
$star = array();
while($starid = mysql_fetch_array($gestr)){
     $star[] = array('name'=>$starid['name'],'age'=>$starid['age'],'id'=>$starid['id']);
}
$final=array('users'=>$star);
echo json_encode($final);

请注意我已经简化了SQL语句,但我知道它在while循环中一直有效,因为我可以回显$ star [1] [name]并打印一个用户名。

1 个答案:

答案 0 :(得分:3)

问题在于json_encode无法解析非UTF8编码的名称。感谢@ChrisForrence建议使用json_last_error();

通过添加utf8_encode();

来修复错误
$star[] = array('name'=>utf8_encode($starid['name']),'age'=>$starid['age'],'id'=>$starid['id']);