0
我正在为使用Symfony和JMS序列化程序包的应用程序开发一个简单的REST API。我有几个网址 - 例如/api/answers/{id}
。现在的问题是,如果我调用id = 1的URL,所有东西都像魅力一样,当我用id = 2,3,4调用它时,JSON内容编码不正确。Symfony 2中奇怪的编码行为
后端脚本看起来是这样的(这只是一个原型,我会重构它):
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
,在配置中的每个位设置为UTF-8也是如此。 PS:我用print_r打印了$ answers变量,它的编码也不正确,所以我想问题在于事物的学说方面。你怎么看?真奇怪的事实是它对id = 1很好。请注意,我在phpmyadmin里面看,文本也很好。
谢谢。
你在哪个操作系统上开发?服务器在哪个服务器上运行? – ferdynator
我用于开发的操作系统是Windows。服务器是本地的(WAMP)。 – michy04
(Windows记事本问题)请参考这个,我也分享了这个问题,它修复了它:http://stackoverflow.com/questions/10290849/how-to-remove-multiple-utf-8-bom-sequences-before -doctype –