Если вопрос уже задавался, прошу прощения, не нашел.К php-файлу посылается запрос с русскими символами, вот он к примеру:
{'message': 'привет'}
На сервере вижу это
{'message': 'u043f\u0440\u0438\u0432\u0435\u0442'}
Как превратить это в 'привет'?
Проблемы в нестандартном JSON, видимо - сделанном руками. По стандарту должны использоваться двойные кавычки. Заменим ординарные и проверим:
var_dump(json_decode(str_replace(
"'",
'"',
"{'message': '\u043f\u0440\u0438\u0432\u0435\u0442'}"
)));
Выводит:
class stdClass#1 (1) {
public $message =>
string(12) "привет"
}
Правильным решением будет делать корректный JSON на передающей стороне, а не заменять кавычки на принимающей.
Как посылается, через что? А вообще конечно задайте в заголовках UTF8, вот таким образом header("Content-Type: text/html; charset=utf-8;");
.
Далее файл сделайте UTF-8 без BOM.
А ещё настройте локаль веб сервера.
У вас проблемы с кодировкой. Можно поправить что бы присылало правильно(с нужными заголовками). Тогда 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
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть docker-compose сборка локального веб-сервера:
выходит ошибка Страница недоступна Сайт пока не может обработать этот запросHTTP ERROR 500 функция phpinfo работает, другие php файлы сайта не открываются