我在返回UTF8字符时遇到Debian Stable php5(5.4.39-0 + deb7u1)上的JsonResponse问题。关于Debian的Symfony2 JsonResponse utf8编码问题稳定php-5.4
我开发Debian的测试PHP5的应用(5.6.6 + DFSG-2)和下面的代码工作就像一个魅力:
$response = new JsonResponse();
$response->headers->set('Content-Type', 'application/json');
$response->setData($data);
return $response;
,但部署到稳定PROD服务器后,我开始得到以下例外完全相同的DB /数据字符集等:
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)"} []
从DB是为$ 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。输入数据来自外部来源(电子邮件),我只需要显示它。我无法重新格式化它,所以我应该以某种方式逃避它。 – 2015-03-25 22:04:56