【发布时间】:2011-12-29 21:35:39
【问题描述】:
我正在从数据库中读取一些希伯来语文本并尝试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"}]
我相信这是因为我的数据库中的文本包含 ( ' ) 标记。 尝试了各种 stripslashes 或 real_escape_string 的组合都没有帮助。
【问题讨论】:
-
这不是
'引用。您的文本编码很可能不是 UTF-8。或者数据库表有哪些字符集? -
您使用的是什么字符编码?问题肯定是缺少 ',看起来您需要通过将数据编码为 UTF-8 来清理数据库中的数据
-
json_encode 根据文档仅适用于 utf-8 字符串。检查
json_last_error()的输出。 php.net/json-last-error。 utf8 在调用 json_encode 之前对你的字符串进行编码。 -
这绝对是可编码的:codepad.org/Q6oKBDFg