Кодировка символов Twig UTF8 — Symfony2

Я разрабатываю систему новостей для веб-сайта французской ассоциации с Symfony2. У меня проблемы с отображением акцентов, а также HTML.

В представлении ветки я просто вывожу переменную:

{{ article.body }}

Если я вставлю акцент прямо в базу вот так: 'é', переменная даже не отобразится.

Если я вместо этого вставлю это: é, оно останется прежним.

HTML отображается как текст.

Я также пробовал функцию autoescape (установленную на true и false), безуспешно:

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

Какие-либо предложения? Большое спасибо


person LBridge    schedule 11.06.2011    source источник
comment
Вы пытались написать ‹meta http-equiv=Content-Type content=text/html; charset=utf-8 /› в заголовке вашего шаблона?   -  person lgomezma    schedule 13.06.2011
comment
Да. Когда я набираю символы прямо в представлении, все работает нормально. Я также убедился, что база данных была закодирована в UTF-8.   -  person LBridge    schedule 14.06.2011
comment
возможный дубликат UTF-8 полностью   -  person deceze♦    schedule 13.02.2014
comment
article.body берется из базы данных, верно? Вы можете подтвердить, что акцентированный текст правильно хранится в базе данных?   -  person Mario A    schedule 03.07.2014


Ответы (4)


Сначала вам нужно установить кодировку в вашем 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

person olive007    schedule 24.02.2015
comment
Это простое решение сделало мой день. - person Mbotet; 17.12.2019

Проблема с кодировкой может появиться в следующих местах:

  1. HTML-документ:

    <meta charset="UTF-8" />
    
  2. Файлы, которые вы используете (контроллеры и представления обычно).
  3. Подключение к базе данных. Параметр charset должен быть установлен на «utf8».
person Rafa0809    schedule 04.04.2015

Попробуйте преобразовать файлы ветки и контроллеры в UTF-8! Аналогичная проблема была здесь (при передаче переменных из контроллера в ветку), и это решило проблему.

person Szendvics    schedule 06.08.2011
comment
ваши здесь и эта ссылки отсутствуют - person Andresch Serj; 11.02.2013
comment
Я предполагаю, что это случай плохого перевода. Я читаю это, так как у меня была аналогичная проблема в этом же месте, тогда это имеет больше смысла. - person Brandon; 14.09.2013

Попробуйте это, если у вас в ddbb есть что-то подобное

&aacute;rbol

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

Это покажет

árbol
person Gonz    schedule 10.12.2012