JSON在PHP中编码字符

时间:2014-06-29 07:26:07

标签: php json

我正在尝试使用php和AJAX返回一个值,但是这样做时会返回以下内容。我的代码的这部分功能已在以前的项目中运行,所以我对它为什么会发生这种情况感到有点困惑。

返回值:

  

<«VÊÏV²2ÔQ*)。V²qjÜ¥5.25

应该返回这样的内容:

{"ok":1,"status":"ok"}

我正在使用的PHP:

$response = array('ok' => 0);
if($results)
{
    $response['ok'] = 1;
    $response['status'] = ($visible == 'visible') ? 'ok' : 'no';
}

ob_clean();
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

echo json_encode($response, true);
exit;

现在,如果我删除了代码并放入自己的文件,它可以正常工作。我将所有文件和数据库设置为UTF-8。

2 个答案:

答案 0 :(得分:0)

第2行有一个重复的右括号。

应该是:

$response = array('ok' => 0);
if($results)
{

解决这个问题,你的代码适合我:

{"ok":0}

如果我强行$results = true;

{"ok":1,"status":"no"}

答案 1 :(得分:0)

我现在感觉很蠢,我在ob_start()中运行了ob_gzhandler;

向所有人道歉。