我的配置:Symfony 4.2.5,JMSSerialiser 3.2。我无法获得序列化的UTF-8响应。我的解决方案是在配置中:
jms_serializer:
visitors:
json:
options: [JSON_UNESCAPED_UNICODE]
但是它不起作用,它给了我UNICODE打印。所以,我得到这个回应:
`"aeiou\u00e0\u00e9\u00e8\u00f4\u00fb"`
这是我的代码:
/**
* @Route("/route1",name="route1")
*/
public function route1(){
$serializer = SerializerBuilder::create()->build();
$chaine = "aeiouàéèôû";
$reponse = new Response(
$serializer->serialize($chaine, 'json'),
Response::HTTP_OK,
['content-type' => 'text/html']
);
$reponse->setCharset('UTF-8');
return $reponse;
}
我发现从firefox启动请求时问题消失了,它为我提供了两种显示模式:json,raw和一个用于请求和响应头的附加选项卡。 Chrome浏览器仅向我提供原始显示。我是否应该得出结论,解决方案在于Chrome的配置?
主题已解决。在默认情况下,Chrome浏览器会显示文件的原始演示,其中带重音符号的字符以转义形式显示。要在Chrome中获取json表单,您需要安装jsonView扩展名。激活此扩展名后,正确显示带重音的字符]