JMSSerializer с сериализованной кодировкой Symfony4 - PullRequest
0 голосов
/ 09 января 2020

Моя конфигурация: Symfony 4.2.5, JMSSerialiser 3.2. Я не могу получить ответ UTF-8 с сериализацией. Я думаю, что решение было в конфигурации:

jms_serializer:
    visitors:
        json:
            options: [JSON_UNESCAPED_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?

1 Ответ

0 голосов
/ 10 января 2020

Тема решена. Chrome по умолчанию отображает необработанное представление файла, в котором акцентированные символы находятся в экранированной форме. Чтобы получить форму json в Chrome, вам необходимо установить расширение jsonView. Как только это расширение активировано, отображение символов с акцентом делается правильно

...