查询参数的Symfony2字符集

查询参数的Symfony2字符集,symfony,configuration,character-encoding,query-builder,Symfony,Configuration,Character Encoding,Query Builder,我在Symfony2中有一个项目,它在本地主机上运行良好,但在将其移动到外部服务器之后,问题就开始了 我没有从包含波兰语字符的数据库中看到任何结果名称 在Profiler中,我检查了查询: “Parameters”节具有正确的字符集 “runnable query”具有相同的参数,但字符集不正确 例如: (…) 式中(((c1)名称类似于“%Å�%') 或(c3)名称,如“%Å”�%') 或(…) 参数:[“%ś%”、“%ś%”、(…)] 所有数据库表都具有charset=utf8\u un

我在Symfony2中有一个项目,它在本地主机上运行良好,但在将其移动到外部服务器之后,问题就开始了

  • 我没有从包含波兰语字符的数据库中看到任何结果名称
  • 在Profiler中,我检查了查询:
    • “Parameters”节具有正确的字符集
    • “runnable query”具有相同的参数,但字符集不正确
  • 例如:

    (…)
    式中(((c1)名称类似于“%Å�%') 或(c3)名称,如“%Å”�%') 或(…)
    参数:[“%ś%”、“%ś%”、(…)]

    所有数据库表都具有charset=utf8\u unicode\u ci

    在config.yml中,我设置了

    doctrine: 
        dbal: 
          charset: UTF8 
    
    设置框架字符集不起作用

    /config.php测试表明:

    RECOMMENDATIONS:
      1. Install and enable a PHP accelerator like APC (highly recommended).
      2. Set short_open_tag to off in php.ini*.
      3. Set magic_quotes_gpc to off in php.ini*.
      * Changes to the php.ini file must be done in "/usr/local/php/php.ini".
    
    但不幸的是,我无法访问该服务器上的php.ini。是否可能是magic_quotes_gpc导致了该问题? 我也不能访问命令行,所以我通过ftp和phpmyadmin添加了项目(数据库、文件系统、供应商)

    因为我的本地主机没有问题,我想这是服务器配置的问题,我没有访问权限,所以我看到的唯一方法是尝试更改QueryBuilder的字符集配置。我在哪里可以做到这一点?你知道还有什么会导致这个问题吗

    感谢找到解决方案: 要设置“set NAMES utf8”,我更改了我的条令配置

    doctrine:
        dbal:
              driver:   %database_driver%
              host:     %database_host%
              port:     %database_port%
              dbname:   %database_name%
              user:     %database_user%
              password: %database_password%
              charset:  UTF8
              options:
                 1002:  "SET NAMES 'UTF8'"
    

    它现在工作正常。

    您比较了两台服务器上的phpinfo();了吗?否则,您的外部web服务器是否运行utf-8?(AddDefaultCharset utf-8,php_value default_charset“utf-8”在htaccess中)正如您所说,我已经设置了字符集UTF8,并将phpinfos字段与字符集进行了比较。它们是相同的,但问题仍然存在。我了解到此服务器默认运行latin2,所以我尝试将所有内容更改为latin2,但没有任何帮助。我正在尝试找到用参数数组中的元素替换“?”符号的位置/函数。是这样吗P培训工作?我如何一步一步地检查那里的情况?