查询参数的 Symfony2 字符集

标签 symfony configuration character-encoding query-builder

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

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

  • 例如:
    (...) WHERE ((((c1_.name LIKE '%Å�%') OR (c3_.name LIKE '%Å�%') OR (..)Parameters: ['%ś%', '%ś%', (...)]
    所有数据库表都有 charset = utf8_unicode_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'"
    

    它现在工作正常。

    关于查询参数的 Symfony2 字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13399912/

    相关文章:

    c# - 如何在 Portal C# 应用程序功能中访问 Azure 功能中的应用程序设置?

    php - implicit_flush 的 "serious performance implications"是什么?

    java - 使用不同参数启动程序的多个实例

    PHP发送纯文本邮件并强制使用固定宽度的字符集

    php - Symfony 2 - 如何在 Twig 模板中显示加入的 Doctrine 实体

    php - symfony/profiler-pack 在安装后立即被删除

    带有 Spread PDF 生成器包的 CSS

    php - Symfony2 Monolog 电子邮件只有一些异常(exception)

    sql - 使用sql/plsql,如何找出文本使用的字符集?

    Java 字符集InputStreamReader、文件 channel 差异