2013-04-28 70 views
1

我想让Doctrine2在Debian挤压系统上的Symfony2中的MySQL数据库正常工作。 数据库的字符集和排序规则设置为utf8和utf8_general_ci,并通过读取sql脚本手动创建数据库。与Symfony2的Doctrine2无法识别数据库字符集和排序

现在我为其中一个表格输入一些值,如丹麦特殊的字符,他们就不会正确显示。

我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硬编码值替换控制器中的输出数组,所以这个问题似乎肯定会来自于doctrine2配置中的某种错误/错误...

有没有人有任何关于如何解决这个问题的线索?

非常感谢。

回答

2

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

0

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

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

谢谢,不幸的是,这不是它。我得到一个运行时异常,指出这个设置已被弃用,我应该向AppKernel.php添加一个getCharset()方法,返回'UTF8'。然而,这并没有解决它... – Johi 2013-04-28 19:47:06

+0

也许我可以帮助更多,如果你想添加你正在使用的Symfony和Doctrine的版本。 – 2013-04-29 11:29:54

+1

感谢您的努力Laurynas。我发现问题是什么,我只是不能接受我自己的答案,但在config.yml中为doctrine设置dbal部分的字符集显然使得已经是utf8(我的猜测)的数据的utf8_encode,因此删除线解决了它。这应该在文档中保存像我这样的dummys麻烦;-) – Johi 2013-04-29 13:12:21