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

回到顶部