在Symfony2中使用Doctrine2持久化UTF-8数据

6

我正在尝试使用Doctrine2和Symfony 2将表单中获取的一些数据持久化到MySQL数据库中。我的问题是,这些数据是希腊语,并且尽管数据库和字段的排序规则为utf8_general_ci,但Doctrine2并未正确地存储这些字符。

我已经检查过我的映射类中这些字符是否正确,所以我猜测问题出在我的Doctrine配置上。有什么想法吗?

2个回答

6

我自己想通了。我需要将Doctrine Dbal设置为utf8。为此,我只需在我的config.yml文件中添加以下内容:

doctrine:
    dbal:
      //rest of the configuration 
      charset:  utf8

2
嗯,这很奇怪。我的config.yml文件中有正确的utf8字符集条目,但是当我查看mysql的“show create table TableName”时,它显示“DEFAULT CHARSET=latin1”。 - targnation
一样的情况 - 你有找到这个问题的根本吗? - codecowboy

1
您还需要在my.cnf文件中添加以下条目:
collation-server = utf8_general_ci 
character-set-server = utf8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接