Json Symfony 2中奇怪的编码行为
我正在使用Symfony和JMS序列化程序包为应用程序开发一个简单的restapi。我有一些URL-例如Json Symfony 2中奇怪的编码行为,json,symfony,jmsserializerbundle,Json,Symfony,Jmsserializerbundle,我正在使用Symfony和JMS序列化程序包为应用程序开发一个简单的restapi。我有一些URL-例如/api/answers/{id}。现在的问题是,如果我用id=1调用该URL,当我用id=2、3、4调用它时,一切都像一个符咒一样工作。。。JSON内容编码不正确 后端脚本如下所示(这只是一个原型,我将对其进行重构): 我的所有数据库表都设置为utf8\u unicode\u ci,配置中的每一位也设置为utf8 PS:我用print_r打印了$answers变量,而且它的编码也不正确,所以
/api/answers/{id}
。现在的问题是,如果我用id=1调用该URL,当我用id=2、3、4调用它时,一切都像一个符咒一样工作。。。JSON内容编码不正确
后端脚本如下所示(这只是一个原型,我将对其进行重构):
我的所有数据库表都设置为utf8\u unicode\u ci
,配置中的每一位也设置为utf8
PS:我用print_r打印了$answers变量,而且它的编码也不正确,所以我认为问题在于原则方面。你怎么认为?真正奇怪的是,它在id=1时运行良好。请注意,我看了一下phpmyadmin的内部,文本也很好
谢谢。我解决了。问题是页面上的编码不同,尽管我在Symfony中将其设置为UTF8。我必须在内容类型标题中手动设置它,以使其正常工作 您在哪个操作系统上开发?服务器在哪一台上运行?我用于开发的操作系统是Windows。服务器是本地的(WAMP)。(Windows记事本问题)请参考此,我也共享了此问题,它已修复此问题:
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"));
}
}