Кодировка символов Twig UTF8 - Symfony2 - PullRequest
11 голосов
/ 11 июня 2011

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

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

{{ article.body }}

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

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

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

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

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

Есть предложения?Большое спасибо

Ответы [ 4 ]

10 голосов
/ 25 февраля 2015

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

2 голосов
/ 04 апреля 2015

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

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

    <meta charset="UTF-8" />
    
  2. Используемые файлы (контроллеры и представления обычно).
  3. Подключение к базе данных.Параметр charset должен иметь значение utf8.
0 голосов
/ 10 декабря 2012

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

&aacute;rbol

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

Это покажет

árbol
0 голосов
/ 06 августа 2011

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

...