我的以下代码运行正常。
$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,
答案 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));
,看看是否有任何区别。