У меня есть объект 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
, чтобы задохнуться, но я не знаю, какой формат нужен, чтобы избежать этого. Любые идеи?
EDIT: Исправлено несоответствие в примерах кода. Я запускаю PHP версии 5.3.8
EDIT2: сразу после кодирования объекта я сделал следующее:
echo json_last_error() == JSON_ERROR_UTF8;
Отпечатано 1
, что означает, что произошла следующая ошибка: "Недопустимые символы UTF-8, возможно, неправильно закодированные". json_last_error()
EDIT3: Вызов utf8_decode()
в заголовке сообщения привел к следующему: "Ученик" Ужин "Скоро". Эти данные извлекаются из базы данных MySQL - в частности, заголовок сообщения представляет собой текстовое поле, кодированное UTF-8. Может быть, эта одиночная кавычка неправильно закодирована? Дело в том, что у меня есть приложение с графическим интерфейсом SQL, и оно выглядит правильно.