为学说问题设置 utf8 字符集

Har*_*rke 4 php mysql doctrine symfony doctrine-orm

我将这个配置用于我的学说:

$config = array(
        'name'          =>  'backend',
        'host'          =>  'xxxxx',
        'user'          =>  'xxxx',
        'password'      =>  'xxxxx',        
        'dbname'        =>  'xxxx', 
        'driver'        =>  'pdo_mysql',
        'charset'       =>  'UTF8',

    );
Run Code Online (Sandbox Code Playgroud)

但是我的数据库正在使用utf8_general_ci. 结果,当我从数据库中获取数据时,某些字符无法按照我的意愿正确显示。我尝试添加:

'driveroptions'=>array(1002=>"SET NAMES utf8")
Run Code Online (Sandbox Code Playgroud)

但它不起作用。有人可以帮助我。

Sco*_*son 8

字符集和排序规则是两个不同的东西。我认为你有 2 个选择。

1) 通过在 [mysqld] 块中添加这些行,在 MySQL 配置(my.cnf 文件)中设置字符集。

例如

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
Run Code Online (Sandbox Code Playgroud)

2) 尝试通过“选项”设置在 Doctrine 配置中设置排序规则。

例如

charset: UTF8
options:
    1002: "SET NAMES 'UTF8' COLLATE 'utf8_unicode_ci'"
Run Code Online (Sandbox Code Playgroud)

  • 我根据您的:`'charset' => 'UTF8', 'driverOptions' => array('1002'=> "SET NAMES 'UTF8' COLLATE 'utf8_general_ci'"), code:` 进行了一些编辑,它运行良好 (3认同)