JSON响应返回null

时间:2015-07-08 19:15:30

标签: php mysql json

我已经按照http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/的教程进行了操作,但是我遇到了JSON响应的问题。它返回null。 我认为这是由于字符编码,因为返回的一些内容为null包括°符号。

PHP代码是:

// Check for empty result
if (mysqli_num_rows($result) > 0) {
// Looping through all results

$response["ntmNotices"] = array();

while ($row = mysqli_fetch_array($result)) {

    $ntmRow = array();
    $ntmRow["uploadDate"] = $row["uploadDate"];
    $ntmRow["uploadTime"] = $row["uploadTime"];
    $ntmRow["ntmTitle"] = $row["ntmTitle"];
    $ntmRow["ntmDate"] = $row["ntmDate"];
    $ntmRow["ntmContent"] = $row["ntmContent"];

    // push single row into final response array
    array_push($response["ntmNotices"], $ntmRow);
}
// success
$response["success"] = 1;

// echoing JSON response    
echo json_encode($response);

} else {
// no rowsfound
$response["success"] = 0;

,响应为“ntmContent”:null} ntmContent是包含奇数字符的内容,但它们在数据库中显示正常。

本教程不涉及围绕字符编码的问题,所以不准备它但是如何处理$响应以接受奇数字符?

由于

1 个答案:

答案 0 :(得分:1)

json_encode无法对值进行编码时,它会输出null。

这是因为您在帖子中也引用了奇怪的字符。

json_encode()仅适用于UTF-8

试试这样:

$ntmRow["ntmContent"] = utf8_encode($row["ntmContent"]);