下面的代码运行良好。
$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);