我有一个非常简单的控制器,代码如下
public function deleteCarrierAction($login)
{
$settingsService = $this->get('app.settings');
$result = $settingsService->deleteCarrier($login);
if (!$result)
{
$response->setStatusCode(400, $settingsService->errorInfo);
return $response;
}
$response->setStatusCode(200);
return $response;
}
其中$settingsService->errorInfo
包含我所在国家/地区的符号。如何将errorInfo文本编码为UTF-8?
当我在Chrome浏览器的调试控制台中看到errorInfo时,它显示如下:
settings:251 POST http://xxxxxxx:8000/delete_carrier/79323317315 400 (Ðа кÑÑÑеÑа назнаÑÐµÐ½Ñ Ð·Ð°ÐºÐ°Ð·Ñ. Удаление невозможно)
答案 0 :(得分:2)
我认为这是以错误的编码方式返回信息的chrome问题。
考虑使用键来描述信息和错误,并且如果你想要更具可读性,请翻译它,例如在视图中: http://symfony.com/doc/current/best_practices/i18n.html
或在您的服务创建方法中转换错误,并使用它回复:
$response->setStatusCode(Response::HTTP_BAD_REQUEST, $settingsService->getTranslatedErrorInfo());