Ich habe Probleme mit JsonResponse auf Debian Stable php5 (5.4.39-0 + deb7u1) beim Zurückgeben von UTF8 Zeichen.Symfony2 JsonResponse utf8 Codierungsprobleme auf Debian Stable php-5.4
ich eine App auf Debian Testing php5 entwickelt (5.6.6 + dfsg-2) und den folgenden Code wie ein Charme:
$response = new JsonResponse();
$response->headers->set('Content-Type', 'application/json');
$response->setData($data);
return $response;
aber nach Server auf den stabilen prod Bereitstellung begann ich die folgende bekommen Ausnahme für das exakt gleiche DB/Daten charsets etc:
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)"} []
Die Antwort von DB, die als $ Daten DO enthält UTF8 Zeichen übergeben, die ich nicht kontrollieren kann. Ich muss sie nur anzeigen.
Ich nehme an, ich habe einen Fehler von 5.4 getroffen, aber wie kann ich es einfach umgehen? Ich habe versucht:
$response = new JsonResponse();
$response->headers->set('Content-Type', 'application/json');
$response->setEncodingOptions(JSON_UNESCAPED_UNICODE);
$response->setData($data);
return $response;
aber ich den gleichen Fehler.
Ideen?
Ich weiß nicht wirklich, wenn ich eine gültige UTF8 erhalten. Eingabedaten stammen von externen Quellen (E-Mails) und ich muss sie einfach anzeigen. Ich kann es nicht neu formatieren, also sollte ich es irgendwie vermeiden. –