php json_encode()显示null而不是文字
我正在从数据库中读取希伯来语中的一些文本,并正在尝试这样json_encode
做。如果print_r
我得到的结果是:
Array(
[0] => Array
(
[value] => 88
[text] => כיתה א'
[parent_id] => 1
[level] => 1
)
[1] => Array
(
[value] => 89
[text] => כיתה ב'
[parent_id] => 1
[level] => 1
)
[2] => Array
(
[value] => 91
[text] => כיתה ג'
[parent_id] => 1
[level] => 1
)
)
而json_encode显示:
[{"value":"88","text":null,"parent_id":"1","level":"1"},{"value":"89","text":null,"parent_id":"1","level":"1"},{"value":"91","text":null,"parent_id":"1","level":"1"}]
我相信这是因为我在数据库中的文本包含一个(’)标记。尝试了各种反斜杠或real_escape_string组合,都无济于事。
回答:
json_encode
期望将数据中的字符串编码为UTF-8。
如果尚未将它们转换为UTF-8:
$results = array_map(function($r) { $r['text'] = utf8_encode($r['text']);
return $r;
}, $results);
echo json_encode($results);
以上是 php json_encode()显示null而不是文字 的全部内容, 来源链接: utcz.com/qa/412197.html