【发布时间】:2015-03-25 11:28:24
【问题描述】:
在返回 UTF8 字符时,我在 Debian Stable php5 (5.4.39-0+deb7u1) 上遇到了 JsonResponse 问题。
我在 Debian Testing php5 (5.6.6+dfsg-2) 上开发了一个应用程序,下面的代码就像一个魅力:
$response = new JsonResponse();
$response->headers->set('Content-Type', 'application/json');
$response->setData($data);
return $response;
但在部署到稳定的 prod 服务器后,我开始收到完全相同的 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)"} []
作为 $data DO 传递的来自 DB 的响应包含我无法控制的 UTF8 字符。我只需要展示它们。
我想我遇到了 5.4 的错误,但我怎样才能轻松绕过它? 我确实试过了:
$response = new JsonResponse();
$response->headers->set('Content-Type', 'application/json');
$response->setEncodingOptions(JSON_UNESCAPED_UNICODE);
$response->setData($data);
return $response;
但我得到了同样的错误。
想法?
【问题讨论】:
标签: php symfony utf-8 jsonresponse