2012-10-06 117 views
0

我想從Doctrine2 ORM的數據庫中讀取utf8(西里爾文)數據,但它總是返回不可讀的符號。Doctrine 2 +西里爾文

我的數據庫,表格和文本字段在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

什麼數據庫裏面? phpmyadmin顯示什麼? – JvdBerg

+1

PhpMyAdmin顯示有效的可讀數據。 – nKognito

回答

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'));