我在返回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