2016-02-22 66 views
0

那真的很奇怪,Twig(我用它与Symfony 3一起)用实体(例如ł)替换非ASCII字符(例如“ł”),但..只在Javascript部分。Twig用实体替换非ASCII字符

我不知道为什么以及如何禁用它。

编辑:是的,我在任何地方都有UTF-8,在Nebeans和HTML头部分。

EDIT2:这里是我当前的代码:

{% autoescape false %} 
    <script> 
     $(function(){ 
      alert('ółż'); 
     }) 
    </script> 
{% endautoescape %} 

即使{% autoescape false %}(马丁的建议),它仍然没有它。

+0

是不是它关系到你的网页的字符集? –

+0

@ bart-bartoman我不这么认为,它的'',加上它只发生在Javascript标签o_O –

回答

3

嗨如果caracters是一个变量这是正常的,对残疾人可以使用:

{{myvar | raw}} 

来源,如果你需要:http://twig.sensiolabs.org/doc/filters/raw.html

+0

谢谢,但不,它不是一个变量,我添加了一块代码我的问题。 –

+0

非常感谢你的时间和帮助,但它似乎是因为我的愚蠢:(我有一天想要一个更好的格式化的HTML代码(更可读),所以我这样做:stackoverflow.com/questions/35064349/...并且有这段代码:$ html = mb_convert_encoding($ html,'HTML-ENTITIES','UTF-8');就是这样,对不起,我浪费了你的时间, –

+1

没问题。什么是真正的问题:) – pietro

1

嫩枝使用基于上下文的不同autoescaping策略。请参见手册http://twig.sensiolabs.org/doc/tags/autoescape.html

您可以强制嫩枝禁用与逃逸:

{% autoescape false %} 
    Everything will be outputted as is in this block 
{% endautoescape %} 

或与raw filter单个打印表达式:

{{ var|raw }} 

也看看你的Twig 's configuration其中autoescaping应默认启用。

编辑:

也许也试试这个:

<script> 
    {% autoescape false %} 
     $(function(){ 
      alert('ółż'); 
     }) 
    {% endautoescape %} 
</script> 
+0

加,在你给我的第一个链接,它指出“小枝不会转义静态表达式:”像'set hello =“你好”'那么它为什么会转换我的字符串? –

+0

你没有使用静态表达式。在你的情况下,静态表达可能是例如。 '{{“alert('ółż');” }}'。当你打印'{{var}}'时,它会按照手册中的描述使用转义。 – martin

+0

但我没有使用变量...我只是这样做:'alert('ółż');' –