json кодировка utf 8

json_encode — Конвертация данных в формат JSON

Описание

Returns a string containing the JSON representation of value.

JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.

Список параметров

The value being encoded. Can be any type except a resource .

Возвращаемые значения

Возвращает данные в формате JSON string on success.

Примеры

Пример 1. A json_encode() example

Результат выполнения данного примера:

Пример 2. A json_encode()
Пример 3. Эмулятор json_encode()
Пример 3. Сохранение русских букв(кирилицы) при использовании json_encode()

А вот пример кодирования сервером строки JSON при помощи стандартной функции в php «json_encode()» и добавочной к ней. В результате русские буковки остаются русскими. Начиная с версии PHP 5.4.0. можно воспользоваться стандартныой опцией JSON_UNESCAPED_UNICODE

Функция json_encode кириллицу utf-8 кодирует в виде u. . Как её заставить кодировать символы «как есть»?

Примечание: не используя второй параметр json_encode и mb-функции.

7 ответов 7

В PHP начиная с версии 5.4.0 появился флаг JSON_UNESCAPED_UNICODE и все стало намного проще:

Пришлось писать свою функцию. Надеюсь, не сильно накосячил?

Предположу, что данные идут с базы данных. В таком случае при подключении к базе данных необходимо указать кодировку подключения — UTF-8.

в начале файла добавь

Указывать Content-Type свой, по ситуации

Искал как решить проблему, в итоге заработало когда добавил к json_encode флаг — JSON_UNESCAPED_UNICODE и сменил кодировку при выводе

  • Improved JSON extension: . Added new json_encode() option JSON_UNESCAPED_UNICODE. FR #53946. (Alexander, Gwynne)

Вот рекурсивная функция, которая может конвертировать в UTF-8 все строки в массиве и объекте:

Также json_last_error() может быть полезным в отладке json_encode()/json_encode() функций.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками json php или задайте свой вопрос.

Связанные

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Ситуации возникают разные, на разных серверах и сайтах по-разному. Иногда нам необходимо передавать данные в JSON формате на сервер, но PHP 5.3 на нем нет, поэтому приходится придумывать способы корректной передачи данных, с заменой символов u00e9 (например) на русские буквы.

Разберем реальный рабочий пример.

Передаем массив данных:

Функция, которая перерабатывает JSON данные.

Здесь мы преобразуем все нечитаемые символы в нормальные:

Подключаемся к базе данных на примере Joomla:

Конечно, если Вы счастливый обладатель PHP 5.3 на своем сервере, то эти действия можно заменить простым кодом:

Результат в базе:

Кроме того, будет полезно знать эти строки:

Оцените статью