I have a set of JavaScript objects I bootstrap to a backend template to initialise my Backbone.js collections on page load. It looks something like this (as Twig template):
<script type="text/javascript">
(function() {
    var jobCollection = new App.Collections.Item(
        {% for item in items %}
        {
            name: '{{ item.name }}',
            ...
        },
        {% endfor %}
    );
})();
</script>
The problem I'm having is that some text fields contain \u200b (Zero width space) that break the JavaScript.
What is the best way to escape these characters? Should I escape them in the backend (I'm using Symfony 2 with Twig to render the initial template) or should I escape them on the client with JavaScript? How can I escape the zero width space character and others in JavaScript or PHP?