0

我最近将我的暂存测试站点升级到了最新版本的 Symfony,并按照下载随附的升级文档中的说明使用 composer 更新了所有供应商。

一切都更新得很好,但我现在注意到一些 HTML 没有显示在 Twig 模板中。

我与当前的实时站点进行了比较,这似乎是一个字符集问题。例如,我有一个下拉列表,其中包含以下值:

Kitchen Ducting > Ducting Kits > Ducting Kit 4” / 100mm

在更新的站点中,下拉列表项只是显示为空白。当我使用 Twig 的原始函数时,它会再次显示该项目,但在黑色菱形中带有可怕的问号。

Kitchen Ducting > Ducting Kits > Ducting Kit 4� / 100mm

您应该知道的可能会有所帮助的事情:

  • 登台测试站点和实时站点都在同一台服务器上。
  • 在我的 httpd.conf 文件中,我有“AddDefaultCharset utf-8”。
  • 在我的 php.ini 文件中,我有 'default_charset = "utf-8"'。
  • 提供的 HTML 文件具有 Content-Type 元标记 'content="text/html; charset=utf-8"'
  • 我的数据库是 InnoDB 并使用 'utf8' 作为默认字符集和 'utf8_general_ci' 作为默认排序规则。数据库中的所有表也使用默认值。

我用 UTF8 查看了 BOM,但无法确定这是否有问题?

4

1 回答 1

2

我设法通过编辑服务器上的 MySql 配置文件(/etc/my.cnf)并添加:

skip-character-set-client-handshake
collation-server=utf8_general_ci
character-set-server=utf8

这为我解决了。我不确定 Twig 或 Doctrine 是否由于升级到 Symfony 而发生了变化,但升级中的某些内容导致默认字符集不起作用。我对 MySQL 配置所做的更改意味着它将始终回退到 UTF-8。

于 2012-11-13T10:57:53.743 回答