Почему этот 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;

Это напечатало 1 , что означает, что произошла следующая ошибка: «Неправильные символы UTF-8, возможно, неправильно закодированные». json_last_error ()

EDIT3: Вызов utf8_decode () в заголовке сообщения приводил к следующему: «Выпускник? Скоро ужин». Эти данные извлекаются из базы данных MySQL - в частности, заголовок сообщения представляет собой текстовое поле в кодировке UTF-8. Может быть, эта одинарная кавычка неправильно закодирована? Дело в том, что у меня есть приложение с графическим интерфейсом пользователя SQL, и оно в нем отображается правильно.

43
задан rybosome 1 February 2012 в 16:06
поделиться