PHP - Отображение русских символов

337
29 сентября 2017, 19:57

Если вопрос уже задавался, прошу прощения, не нашел.К php-файлу посылается запрос с русскими символами, вот он к примеру:

    {'message': 'привет'}

На сервере вижу это

    {'message': 'u043f\u0440\u0438\u0432\u0435\u0442'}

Как превратить это в 'привет'?

Answer 1

Проблемы в нестандартном JSON, видимо - сделанном руками. По стандарту должны использоваться двойные кавычки. Заменим ординарные и проверим:

var_dump(json_decode(str_replace(
    "'",
    '"',
    "{'message': '\u043f\u0440\u0438\u0432\u0435\u0442'}"
)));

Выводит:

class stdClass#1 (1) {
  public $message =>
  string(12) "привет"
}

Правильным решением будет делать корректный JSON на передающей стороне, а не заменять кавычки на принимающей.

Answer 2

Как посылается, через что? А вообще конечно задайте в заголовках UTF8, вот таким образом header("Content-Type: text/html; charset=utf-8;");.

Далее файл сделайте UTF-8 без BOM.

А ещё настройте локаль веб сервера.

Answer 3

У вас проблемы с кодировкой. Можно поправить что бы присылало правильно(с нужными заголовками). Тогда json_decode справится. Смотрите ответ Евгения Иванова.

А можно конвертировать используя. http://php.net/manual/en/function.mb-convert-encoding.php

 mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');

Если вы делаете кодирование строки в php.

То можно использоват флаг JSON_UNESCAPED_UNICODE что бы символы не конвертировались. http://php.net/manual/ru/function.json-encode.php

READ ALSO
Принятие данных с php в js

Принятие данных с php в js

Пробую принять данные, но почему-то undefined

196
Как вывести/синхронизировать конфиг apache2 из docker-compose?

Как вывести/синхронизировать конфиг apache2 из docker-compose?

У меня есть docker-compose сборка локального веб-сервера:

170
после обновления php c 5.3 до 5.6 не работает сайт

после обновления php c 5.3 до 5.6 не работает сайт

выходит ошибка Страница недоступна Сайт пока не может обработать этот запросHTTP ERROR 500 функция phpinfo работает, другие php файлы сайта не открываются

226
Вывод похожих записей WordPress

Вывод похожих записей WordPress

Доброго времени сутокДля каждой записи указывается 7 подрубрик

243