我已经按照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是包含奇数字符的内容,但它们在数据库中显示正常。
本教程不涉及围绕字符编码的问题,所以不准备它但是如何处理$响应以接受奇数字符?
由于
答案 0 :(得分:1)
当json_encode
无法对值进行编码时,它会输出null。
这是因为您在帖子中也引用了奇怪的字符。
json_encode()
仅适用于UTF-8
。
试试这样:
$ntmRow["ntmContent"] = utf8_encode($row["ntmContent"]);