使用Symfony2的Doctrine2无法识别db charset和collat​​ion

时间:2013-04-28 07:52:15

标签: mysql symfony doctrine-orm debian

我试图在Debian squeeze系统上使用Symfony2中的mysql数据库使Doctrine2正常工作。 DB的charset和collat​​ion设置为utf8和utf8_general_ci,并通过读取sql脚本手动创建db。

现在我为其中一个表格输入一些值,例如æøå等丹麦特殊字符,它们根本无法正确显示。

我的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控制台中执行select时,字符显示正确,如果我尝试通过som硬编码值替换控制器中的输出数组,那么问题似乎肯定是源于某种错误/错误doctrine2配置......

有没有人知道如何解决这个问题?

非常感谢。

2 个答案:

答案 0 :(得分:2)

好的,我终于想通了......这种配置正在进行某种双重编码。评论charset:来自doctrine dbal config的UTF8解决了这个问题。

答案 1 :(得分:0)

问题可能出在您的应用程序字符集中。它可以在config.yml

中找到
framework:
  charset:         UTF-8
  #translator:      { fallback: lt }
  #secret:          %secret%
  #other options