ページの読み込み時に Backbone.js コレクションを初期化するために、バックエンド テンプレートにブートストラップする一連の JavaScript オブジェクトがあります。これは次のようになります (Twig テンプレートとして):
<script type="text/javascript">
(function() {
var jobCollection = new App.Collections.Item(
{% for item in items %}
{
name: '{{ item.name }}',
...
},
{% endfor %}
);
})();
</script>
私が抱えている問題は、一部のテキスト フィールドに JavaScript を壊す \u200b (ゼロ幅スペース) が含まれていることです。
これらの文字をエスケープする最良の方法は何ですか? バックエンドでそれらをエスケープする必要がありますか (初期テンプレートをレンダリングするために Twig で Symfony 2 を使用しています)、それともクライアントで JavaScript を使用してエスケープする必要がありますか? JavaScript や PHP で幅ゼロのスペース文字などをエスケープするにはどうすればよいですか?