我正在使用 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 内部查看,文本也很好。
谢谢你。