Twig UTF8字符编码 - Symfony2

时间:2011-06-11 00:27:25

标签: html utf-8 twig

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

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

{{ article.body }}

如果我直接在数据库中插入重音符号:'é',则甚至不显示变量。

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

HTML显示为文字。

我还尝试了autoescape函数(设置为truefalse),但没有成功:

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

有什么建议吗?非常感谢

4 个答案:

答案 0 :(得分:9)

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

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

第二个“convert_encoding()”是一个twig函数,它将变量转换为其他编码。

{{ 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

答案 1 :(得分:2)

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

  1. HTML文档:

    <meta charset="UTF-8" />
    
  2. 您使用的文件(通常是控制器和视图)。
  3. 数据库连接。 charset参数必须设置为&#39; utf8&#39;。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

试试这个,如果你有像这样的ddbb

&aacute;rbol

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

这将显示

árbol