我正在从数据库中读取希伯来语中的一些文本,并正在尝试这样json_encode做。如果print_r我得到的结果是:
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);