我在Symfony2中有一个项目,它适用于我的本地主机,但是在将它移动到外部服务器后,问题已经开始。Symfony2用于查询参数的字符集
- 我不从包含数据库看到任何结果的名字擦亮字符
- 在探查我检查查询:
- “参数”部分有正确的字符集
- “可运行查询”具有相同参数,但坏的字符集
例如:
(...) 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添加了项目(数据库,文件系统,供应商)。
Becouse我没有在我的本地主机上的问题,我想这是服务器配置的问题,我无法访问,我看到的唯一方法是尝试更改QueryBuilder的charset配置。我在哪里可以做到这一点?你知道还有什么可能导致这个问题?
感谢
你比较了phpinfo();在两台服务器上?否则,您的外部Web服务器是否运行utf-8? (AddDefaultCharset UTF-8,php_value default_charset“UTF-8”内htaccess) – sglessard
我已经设置了字符集UTF8正如你所说,并比较了phpinfos字段和字符集。他们是一样的,但问题仍然存在。我读过这个服务器默认运行latin2,所以我试图把所有东西都改成latin2,但是这并没有帮助。我试图找到替换'?'的地方/功能带有参数数组元素的符号。那是PDOStatment工作吗?我怎么能一步一步检查那里发生了什么? – user1826876