urldecode在JSON不起作用
require_once('db.php');
$sql = "SELECT * FROM tbl";
$rs = mysql_query($sql);
$rows = array();
while($r = mysql_fetch_assoc($rs)) {
$rows['Record'][] = $r;
}
print json_encode($rows);
mysql_close($conn);
//它完美的作品上面urldecode在JSON不起作用
while($r = mysql_fetch_assoc($rs)) {
$r = utf8_decode(urldecode($r));
$rows['Record'][] = $r;
}
//它没有以上工作,可能是$ r是一个对象 我怎样才能使它工作?
问题是,mysql_fetch_assoc
返回一个数组,并且您想将它传递给urldecode
,它将等待字符串作为参数。
要达到您想要的效果,您应该致电urldecode
查看返回的$r
中的所有列。
你可以像这样做,例如:
$r = array_map(function($col){
return utf8_decode(urldecode($col));
}, $r);
这样返回 {“记录”:[{“ID”:“1”,“name”:“John Smith”,“email”:“[email protected]”,“tel”:“12345678” ,“total”:“0”,“edm”:“Y”,“receipt”:“”,“timestamp”:“2016-07-07 12:50:52”},{“ID”:“2” ,“名称”:“Anna Chan ????”,“email”:“[email protected]”,“tel”:“87654321”,“total”:“200”,“edm”:“N”, “receipt”:“????”,“timestamp”:“2016-07-07 12:52:15”}]} ?????是中文字符 如果我从utf8_decode(urldecode($ col))中拿走utf8_decode; 它返回\ u66f4 \ u65b5 \ u65e5 \ u671f 我该如何解决它? – lee
是试图从JSON解析数据。你想要什么类型的答案任何语法来显示我 –
你对这个'$ r = utf8_decode(urldecode($ r))有什么期望? –