树枝和撇号

Twig and Apostrophes

我最近在 PHP 网站上实施了 Twig。该站点有一个 MySQL 数据库,其中每个条目都是一份报告。实施 Twig 后,撇号无法正确显示。此问题的示例如下:

Evaluating the State�s Workers� Compensation

网页上的字符集与以前相同。

在使用 Twig 之前,我显示了这样的结果并且一切正常:

    echo "<table border='1' width=100%><tr>";
    // printing table headers
    for($i=0; $i<$fields_num; $i++){
        $field = mysql_fetch_field($result);
        echo "<td>{$field->name}</td>";
    }

    while($row = mysql_fetch_assoc($result)){
        echo "<tr>";
        // $row is array... foreach( .. ) puts every element
        // of $row to $cell variable
        foreach($row as $cell)
            echo "<td>$cell</td>";
            echo "</tr>\n";
    }

    echo "</table>";

相反,我现在使用 Twig 的模板标签:

{% for i in queryResult %}
    <tr>
        <td> {{ i.Month }} </td>
        <td> {{ i.Year }} </td>
        <td> {{ i.Title}) }} </td>
{% endfor %}

解决方案是使用 raw filter 来防止自动转义。

这涉及更改:

<td> {{ i.Title }) }} </td>

收件人:

<td> {{ i.Title|raw }) }} </td>

感谢 Alain Tiemblo 的评论为我指明了正确的方向。