2013-04-28 3 views
1

Я пытаюсь заставить Doctrine2 работать правильно с mysql db в Symfony2 в системе debian squeeze. В кодировке и сортировке БД установлены utf8 и utf8_general_ci, а db создается вручную, считывая скрипт sql.Doctrine2 с Symfony2, не признающим db charset и collation

Теперь я ввожу некоторые значения для одной из таблиц с датскими специальными символами, такими как æøå, и они просто не отображаются правильно.

Мой parameters.yml поставил кодировку: utf8 и в моем config.yml конфигурации доктрина:

doctrine: 
    dbal: 
     driver: %database_driver% 
     host:  %database_host% 
     port:  %database_port% 
     dbname: %database_name% 
     user:  %database_user% 
     password: %database_password% 
     charset: UTF8 

Когда я избранная в консоли MySQL, символы отображаются корректно, а также, если я пытаюсь путем замены выходного массива в контроллере на som hardcoded, поэтому проблема, по-видимому, обусловлена ​​некоторой ошибкой/ошибкой в ​​конфигурации doctrine2 ...

Есть ли у кого-нибудь ключи от того, как это решить?

Большое спасибо.

ответ

2

Хорошо я наконец понял это ... есть какое-то двойная кодировка происходит с этой конфигурацией. Комментирование charset: UTF8 из доктрины dbal config решает проблему.

0

проблема может быть в вашем приложении charset. его можно найти в config.yml

framework: 
    charset:   UTF-8 
    #translator:  { fallback: lt } 
    #secret:   %secret% 
    #other options 
+0

Спасибо, к сожалению, что не так. Я получаю исключение во время выполнения, что этот параметр устарел и что я должен добавить метод getCharset(), чтобы AppKernel.php возвращал «UTF8». Однако это не исправить ... – Johi

+0

Возможно, я мог бы помочь больше, если бы вы добавили, какую версию Symfony и Doctrine вы используете. –

+1

Спасибо за усилия Лауринас. Я выяснил, в чем проблема, я просто не могу принять свой собственный ответ, установка кодировки dbal section для doctrine в config.yml, очевидно, делает utf8_encode данных, которые уже являются utf8 (моя догадка), поэтому удаление этого линия решена. Это должно быть в документах, чтобы сохранить dummys, как я, неприятность ;-) – Johi

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