У меня есть 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, и оно в нем отображается правильно.