具有Symfony4序列化编码的JMSSerializer

问题描述 投票:0回答:1

我的配置: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的配置?

utf-8 character-encoding jmsserializerbundle symfony-4.2
1个回答
0
投票

主题已解决。在默认情况下,Chrome浏览器会显示文件的原始演示,其中带重音符号的字符以转义形式显示。要在Chrome中获取json表单,您需要安装jsonView扩展名。激活此扩展名后,正确显示带重音的字符]

© www.soinside.com 2019 - 2024. All rights reserved.