树枝不显示utf8字符与原则对象(SQL server)



当我渲染一个小树枝模板时,我有麻烦显示一些字符。我正在从SQL server获取数据

    $em = $this->getDoctrine()->getManager();
$newsData = $em->getRepository("EstadisticasBundle:Novedades")->findAll();
return $this->render("EstadisticasBundle:index:index.html.twig",array("news" => $newsData));

当我在我的小枝上使用它时,我是这样做的

    {% set i = 0 %}
    {% for i in 0.. news|length-1 %}
    {% set novedad = news[i] %}
{{ novedad.detalle }}
    {% endfor %} 

不显示特殊字符。如果我使用|raw,它会显示如下:"2012 Veinte a ø os"。

当我使用die()与print或当我在树枝上写特殊字符时,我没有任何问题显示字符。这只发生在数组上也就是查询

产生的对象

这是固定的,这是我的坏,我认为我的DB字符集是UTF8,但它不是(因为我没有创建这个DB)。我使用

修复了它
    {{ novedad.detalle|convert_encoding('UTF-8', 'ISO-8859-1') }} 

注意在Symfony2 config.yml中定义Sql Server驱动程序在doctrine2 dbal连接上的字符集。

对于pdo_mysql驱动程序的字符集参数为:

字符集:UTF8

但是对于sqlsrv驱动程序字符集是:

charset: UTF-8

注意并记住键入连字符"-"

doctrine:
    dbal:
        default_connection: default
        connections:
          default:
            driver:   sqlsrv
            host:     %database_host%
            port:     1433
            dbname:   yourdatabasename
            user:     %database_user%
            password: %database_password%
            charset:  UTF-8

最新更新