当数据库字段包含某些特殊字符时,原则2实体字段为NULL


Doctrine 2 entity field is NULL when database field contains certain special characters

当获取Doctrine 2实体字段为null时,因为它在数据库中包含" - " (&# 8212;)

字段是:

/*
 * @var string
 *
 * @ORM'Column(name="question", type="text", nullable=false)
 *
 * @Groups({"list", "details", "exercise_details"})
 * @Type("string")
 */
private $question;

获取是用下面的代码完成的:

$exercise = $exerciseRepo->findOneBy(array('id' => $id));
$this->response(json_decode($this->serializer->serialize($exercise, 'json', 'JMS'Serializer'SerializationContext::create()->setGroups(array('exercise_details', 'details')));

当我从数据库中删除字符时,文本显示正确。问题可能是什么?如何解决?

我知道这是一个老问题,但我刚刚有同样的问题,我已经解决了它添加这一行:

charset: UTF8
在config.yml

dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8