PHP中mysql表数据的意外JSON输出


Unexpected JSON output for mysql table data in PHP

下面的代码运行良好。

$arr = array();
$str = "Acme® Foundation";
$arr[] = array( "title" => $str);
echo json_encode($arr);

---------输出符合预期

[{"title":"Acme'u00ae Foundation"}]

但如果我从数据库表中检索到相同的字符串,它就会返回空

$arr = array();
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$str = $row["title"];
$arr[] = array( "title" => $str);
echo json_encode($arr);

--------输出不符合预期

[{"title":null}]

有人能指导我吗,因为我是一个非常新的php和mysql。如果我不使用®符号,那么它可以正常工作

TIA、

手册指出json_encode仅适用于UTF-8编码的数据。可能是从数据库中检索到的值有其他编码吗?

试试echo json_encode(utf8_encode($arr));,看看这是否有什么不同。

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $r[] = array(
      "id" => $row['id'],
      "data1" => $row['data1']
    );
   )
$encoded = json_encode($r);