我的Doctrine 1.2作为钩子集成在CodeIgniter里面,我知道我的char-set是utf8,带有collation utf8_unicode_ci。
我有两个YAML文件,一个用于创建数据库及其表,另一个用于加载一些测试数据。我的数据可以包含法语口音(çéïë...)。在我的schama.yml中,我已正确指定了排序规则和字符集:
options:
type: INNODB
charset: utf8
collate: utf8_unicode_ci
我仔细检查了phpMyAdmin中的设置,一切正确。
当我从命令行运行我的学说脚本以将我的夹具加载到我的一个表格中时,所有的法语口音都被垃圾代替!
我是否错过了设置或配置,或者Doctrine中是否存在错误?
答案 0 :(得分:3)
您应该在/config/database.php Doctrine连接中:
// Load the Doctrine connection
$doctrine = Doctrine_Manager::connection($db['default']['dsn'], $db['default']['database']);
要解决编码问题,您必须添加以下行:
$doctrine->exec('set names utf8');