13

我正在使用 Symfony2 为法国协会的网站开发一个新闻系统。在显示重音符号和 HTML 时,我遇到了麻烦。

在树枝视图中,我只是输出变量:

{{ article.body }}

如果我像这样直接在数据库中插入重音:'é',甚至不会显示变量。

如果我插入它:é它保持不变。

HTML 显示为文本。

我也尝试了该autoescape功能(设置为trueand false),但没有成功:

{% autoescape true %}
    {{ article.body }}
{% endautoescape %}

有什么建议么?非常感谢

4

4 回答 4

12

首先,您需要在 HTML 代码中设置字符集

<!-- for HTML5 -->
<meta charset="UTF-8" />

第二个“convert_encoding()”是将变量转换为其他编码的树枝函数。

{{ article.body | convert_encoding('UTF-8', 'ISO-8859-1') }}

但也许,您需要在转换变量之前使用 raw

{{ article.body | raw | convert_encoding('UTF-8', 'ISO-8859-1') }}

http://twig.sensiolabs.org/doc/filters/convert_encoding.html

于 2015-02-24T22:57:45.040 回答
3

编码问题可能出现在下一个地方:

  1. HTML 文档:

    <meta charset="UTF-8" />
    
  2. 您使用的文件(通常是控制器和视图)。
  3. 数据库连接。charset 参数必须设置为“utf8”。
于 2015-04-04T12:32:08.513 回答
0

尝试将树枝文件和控制器转换为 UTF-8!类似的问题在这里(将变量从控制器传递到树枝时),这解决了问题。

于 2011-08-06T12:31:41.110 回答
0

试试这个,如果你在 ddbb 中有这样的东西

&aacute;rbol

{% autoescape %}
  {{ c.data|raw }}
{% endautoescape %}

这将显示

árbol
于 2012-12-10T02:36:56.980 回答