从DB中取出后,我在其上执行打印json_encode,如下所示
function queryPrintJson($cnx, $query) {
$rows=queryReturnJsonArray($cnx, $query);
print json_encode($rows, JSON_HEX_APOS);
}
function queryReturnJsonArray($cnx, $query) {
$result=mysqli_query($cnx, $query) or die ("Can't execute query!");
$rows = array();
while($obj = $result->fetch_object()){
$rows[] = $obj;
}
$result->close();
return $rows;
}
它不会打印任何东西。调试后,即var_dump等,简化查询,减少数据结果......我无法实现这一点,因为其中一个字段(描述)中包含单引号(即')。由于存在此单引号,我无法让json_encode
工作。
有没有解决这个问题,而不是去数据库并手动编辑所有带转义字符的数据?也许是一种在从db中检索后替换自动转义单引号的方法?
已更新
显然这不是由于单引号问题,而是一个特殊的单引号称为单引号。检查http://unicodelookup.com/#’'/1
找到另一个,这是 - 和 - 。请参阅http://unicodelookup.com/#–-/1
。第一个将导致json_encode不返回任何内容。
另一个是“和"。 http://unicodelookup.com/#“"/1
答案 0 :(得分:1)
单一报价不应影响您的json_encode()
功能。
实施例
$person = array(
"name" => "I don't know my Name",
"email" => "I don't know my Email as well"
);
print_r($person);
输出
Array
(
[name] => I don't know my Name
[email] => I don't know my Email as well
)
和
echo json_encode($person);
输出
{"name":"I don't know my Name","email":"I don't know my Email as well"}