2016-02-22 102 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('ółż');' –