Doctrine - загрузите прибор YAML с французскими символами - PullRequest
2 голосов
/ 24 ноября 2010

Мой Doctrine 1.2 встроен в CodeIgniter как хук, и я знаю, что мой набор символов - это utf8 с сопоставлением utf8_unicode_ci.

У меня есть два файла YAML, один для создания БД и ее таблиц, а другой для загрузки некоторых тестовых данных. Мои данные могут содержать французские акценты (çéïë ...). В моем schama.yml я правильно указал параметры сортировки и набор символов:

options:
  type: INNODB
  charset: utf8
  collate: utf8_unicode_ci

Я дважды проверил настройки в phpMyAdmin, все правильно.

Когда я запускаю свой сценарий доктрины из командной строки, чтобы загрузить свой прибор в одну из моих таблиц, все французские акценты заменяются мусором!

Мне не хватает параметра или конфигурации или в Doctrine есть ошибка?

1 Ответ

3 голосов
/ 03 декабря 2010

В вашем /config/database.php соединении Doctrine должно быть:

// Load the Doctrine connection
$doctrine = Doctrine_Manager::connection($db['default']['dsn'], $db['default']['database']);

Чтобы исправить проблему с кодировкой, вы должны добавить эту строку:

$doctrine->exec('set names utf8');
...