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

时间:2013-06-22 14:09:06

标签: php json

我的以下代码运行正常。

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

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

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

但如果我从数据库表中检索相同的字符串,则返回null

$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,

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

The manual states that json_encode only works with UTF-8 encoded data。可能是从数据库中检索的值有另一种编码吗?

尝试echo json_encode(utf8_encode($arr));,看看是否有任何区别。