0

我正在使用 Symfony 和 JMS Serializer Bundle 为应用程序开发一个简单的 REST API。我有几个 URL - 例如/api/answers/{id}。现在的问题是,如果我用 id=1 调用那个 URL,一切都像一个魅力,当我用 id=2、3、4 调用它时……JSON 内容编码不正确。

后端脚本如下所示(这只是一个原型,我将对其进行重构):

    public function getByQuestionIdAction($questionId)
    {
         $answers = $this->getDoctrine()->getRepository('B2GameBundle:Answer')->findByQuestion($this->getDoctrine()
                                        ->getRepository('B2GameBundle:Question')->find($questionId));

         $serializer = $this->get('jms_serializer');

        if(!empty($answers))
        {
            return Response::create($serializer->serialize($answers, 'json'), 200, array("Content-type" =>     "application/json"));
        }
        else
        {
            return Response::create(json_encode(array('error' => 'No answers for question with id ' .     $questionId . ' found!')), 404, array("Content-type" => "application/json"));
        }

    }

我所有的数据库表都设置为utf8_unicode_ci,配置中的每一位也设置为 utf8 。

PS:我用 print_r 打印了 $answers 变量,并且它的编码也不正确,所以我认为问题出在教义方面。你怎么看?真正奇怪的是它对 id=1 工作得很好。请注意,我在 phpmyadmin 内部查看,文本也很好。

谢谢你。

4

1 回答 1

0

我解决了。问题是页面上的编码不同,即使我在 Symfony 中将其设置为 UTF8。我必须在 Content-Type 标头中手动设置它才能使其工作。

于 2014-02-08T11:43:46.437 回答