Doctrine:特殊字符不保存到数据库字符串字段中

ben*_*h-o 5 mysql doctrine diacritics symfony

即时尝试使用doctrine(在symfony2中)保存到字符串字段(mysql数据库):

$blogpost->setTitle = "Test !§$%&/()=? äöü ÄÖÜ :D";

$em = $this->getDoctrine()->getManager();
$em->persist($blogpost);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

但它救了我:"测试!" (其余的遗失)

该实体是:

/**
 * @ORM\Column(type="string")
 */
protected $Title;
Run Code Online (Sandbox Code Playgroud)

mysql数据库是utf8_general_ci.

(当我用phpmyadmin手动添加实体时,它可以正常工作.)

我需要有德国变形金刚.希望您能够帮助我.

Rez*_*a S 3

您必须为实体管理连接字符串设置编码:

doctrine:
    dbal:
        driver: %database_driver%
        host: %database_host%
        port: %database_port%
        dbname: %database_name%
        user: %database_user%
        password: %database_password%
        charset: UTF8
Run Code Online (Sandbox Code Playgroud)

这样您就可以在数据库中的所有列上使用 UTF8 字符。