2017-01-04 4 views
1

Я использую этот конфиг для моей доктрины:Набор utf8 кодировки для выпуска доктрины

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

    ); 

Но моя база данных использует utf8_general_ci. В результате, когда я получаю данные из базы данных, некоторые символы не могут отображаться правильно, как я хочу. Я попытался добавить:

'driveroptions'=>array(1002=>"SET NAMES utf8") 

Но это не работает. Не мог бы кто-нибудь помочь мне.

+0

Вы не можете установить эти значения в файлах аннотаций, yml или xml. Чтобы сделать работу с базой данных по умолчанию и сортировкой, вы должны настроить MySQL для использования в качестве кодировки по умолчанию или создать базу данных с деталями charset и collation. http://stackoverflow.com/a/9005158/2689199 –

+0

Ты собираешься рассказать мне всего лишь о моем проекте за 2 месяца? – Hanata

+0

Я не имею в виду. Пожалуйста, взгляните на соответствующую ссылку. Он показывает вам, как вы можете достичь этого, настроив mysqld или обновив объект –

ответ

2

Набор символов и сортировка - это две разные вещи. Я думаю, у вас есть 2 варианта.

1) Установите набор символов в конфигурацию MySQL (файл my.cnf), добавив эти строки в блок [mysqld].

например.

[mysqld] 
character-set-server=utf8 
collation-server=utf8_general_ci 

2) Попробуйте настроить сортировку в конфигурации Doctrine с помощью настроек «options».

например.

charset: UTF8 
options: 
    1002: "SET NAMES 'UTF8' COLLATE 'utf8_unicode_ci'" 
+0

. Я не могу использовать первый метод. Поэтому я использовал второй, но не работал. – Hanata

+0

я редактировал немного базы на: ' 'Кодировка' \t \t => \t 'utf8', \t \t \t => массив 'driverOptions' ('1002' => "SET 'utf8' NAMES 'utf8_general_ci' СОРТ-") , код: 'и он хорошо работает – Hanata

+0

Большое спасибо за вашу помощь. – Hanata

Смежные вопросы