当我渲染一个小树枝模板时,我有麻烦显示一些字符。我正在从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