php: // input получает JSON с ивритом через POST, возвращает вопросительные знаки

Я использую сценарий PHP для получения объекта JSON, отправленного через POST.

Запрос JSON POST в основном выглядит следующим образом:

POST /script.php HTTP/1.1
Host: xx.xx.xx.xx
Content-Type: application/json
Content-Length: xx
Connection: keep-alive

{var:"value", var2:"value2", etc..}

И код на стороне сервера PHP, как это:

$content = file_get_contents('php://input');
file_put_contents("check.log", $content);
$data = json_decode($content, true);

Я намеренно хотел сохранить полученное содержимое в файл (check.log), чтобы я мог изучить необработанный ввод, полученный как есть.

Моя проблема заключается в том, что когда JSON содержит ивритские символы в местах «значения», «значения2» и т. Д., Они принимаются в виде вопросительных знаков (?????) в сохраненном файле check.log (у меня есть checkd check .log через шестнадцатеричный редактор. Это вопросительные знаки. 0x3F), поэтому полученный файл «check.log» выглядит так:

{var:"?????",var2:"??????",..}

если это кому-нибудь поможет, я использую сервер Apache 2.2.3 с PHP 5.

это проблема с внутренней кодировкой PHP, установленной для оболочки ввода php: //?

есть ли способ исправить это?

-1

Решение

Ваш заголовок содержит множество

header('Content-Type: application/json; Charset=UTF-8');

а также

// кодируем ваши данные которые вы получаете с сервера

$json = utf8_encode($content);
$data = json_decode($content, true);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]