我正在尝试使用Doctrine2 ORM从数据库中读取utf8(西里尔文)数据,但它总是返回不可读的符号。
我在utf8-general-ci中的数据库,表格和文本字段。 连接看起来像这样:
$em = EntityManager::create(array(
'driver' => 'pdo_mysql',
'unix_socket' => '/var/lib/mysql/mysql.sock',
'charset' => 'utf8',
'host' => DB_HOST,
'user' => DB_USER,
'password' => DB_PASS,
'dbname' => DB_NAME
), $config);
但仍然没有成功。我该如何解决? 谢谢
答案 0 :(得分:1)
以下是我找到的解决方案,并且有效:
$em = EntityManager::create(array(
'driver' => 'pdo_mysql',
'unix_socket' => '/var/lib/mysql/mysql.sock',
'charset' => 'utf8',
'host' => DB_HOST,
'user' => DB_USER,
'password' => DB_PASS,
'dbname' => DB_NAME
), $config);
$em->getEventManager()->addEventSubscriber(new MysqlSessionInit('utf8', 'utf8_unicode_ci'));