为什么这个 PHP 调用json_encode静默地失败 - 无法处理单引号?
我有一个名为的对象,当通过 转储时,返回以下内容:stdClass
$post
print_r()
stdClass Object (
[ID] => 12981
[post_title] => Alumnus' Dinner Coming Soon
[post_parent] => 0
[post_date] => 2012-01-31 12:00:51
)
通过调用此对象来回显结果,将产生以下结果:json_encode()
{
"ID": "12981",
"post_title": null,
"post_parent": "0",
"post_date": "2012-01-31 12:00:51"
}
我假设带有单引号的东西会导致窒息,但我不知道需要什么格式来逃避它。有什么想法吗?json_encode
编辑:修复了代码示例中的不匹配问题。我运行的是 PHP 版本 5.3.8
编辑2:直接在编码对象之后,我这样做了:
echo json_last_error() == JSON_ERROR_UTF8;
此打印,这意味着发生了以下错误:“格式错误的 UTF-8 字符,可能编码不正确”。json_last_error()1
编辑3:呼吁帖子标题导致以下内容:“校友?晚餐即将到来”。这些数据是从MySQL数据库中提取的 - 特别是帖子标题是一个文本字段,UTF-8编码。也许这个单引号编码不正确?问题是,我有一个SQL GUI应用程序,它在其中正确显示。utf8_decode()