У меня возникают проблемы с JsonResponse на Debian Stable php5 (5.4.39-0 + deb7u1) при возврате символов UTF8.Проблемы с кодировкой Symfony2 JsonResponse utf8 на Debian Stable php-5.4
Я разработал приложение на Debian Testing php5 (5.6.6 + DFSG-2) и следующий код работает как шарм:
$response = new JsonResponse();
$response->headers->set('Content-Type', 'application/json');
$response->setData($data);
return $response;
но после развертывания на стабильный сервер прод я начал получать следующее исключение для тех же наборов символов DB/Data и т.д.:
request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: "Malformed UTF-8 characters,
possibly incorrectly encoded." at /site/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/JsonResponse.php
line 123 {"exception":"[object] (InvalidArgumentException(code: 0):
Malformed UTF-8 characters, possibly incorrectly encoded. at
/site/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/JsonResponse.php:123)"} []
ответ от БД, который передается как $ данных DO содержит UTF8 символы, которые не могут контролировать. Мне просто нужно их отобразить.
Я полагаю, что попал в ошибку 5.4, но как я могу легко обойти его? Я пробовал:
$response = new JsonResponse();
$response->headers->set('Content-Type', 'application/json');
$response->setEncodingOptions(JSON_UNESCAPED_UNICODE);
$response->setData($data);
return $response;
но я получаю ту же ошибку.
Идеи?
Я действительно не знаю, если я получаю действительный UTF8. Входные данные поступают из внешнего источника (электронные письма), и я просто должен его отображать. Я не могу переформатировать его, поэтому я должен как-то сбежать от него. –