Проблема действительно может быть вызвана специальным символом, я не слишком знаком с командой escape JavaScript, но я знаю, что вы можете сделать с php, убедитесь, что ваши данные проходят через Ajax-запрос, и попробуйте использовать htmlentities ($ string) для преобразования каждого тега HTML в его закодированную версию, что позволит вам сохранить его в базе данных.
Кроме того, в своем Ajax-запросе убедитесь, что на каждом шаге с вашей строкой, попробуйте использовать оповещения, чтобы показать, что ваша строка проходит или что она по крайней мере отправляется в файл php, внутри файла php, который вы можете попробовать распечатать или "отображение" строки, чтобы увидеть конечный результат и затем предупредить его в запросе Ajax, вот небольшой пример этого в jQuery:
$.post("ajax/edit.php", {id_poll:$('#idPoll').val(),id_css:$('#css_name').val(),css:$('#poll_description_textarea').val()},
function(applyData){
if ( applyData.toString() == 'invalid' ){
$('#pollError').html('Global styles cannot be modified.');
$('#pollNotice').html('');
}
else{
$('#pollNotice').html('The changes to the style have been applied.');
}
});
В предыдущем примере я делаю Ajax-запрос, в котором я отправляю CSS-классы из текстового поля, внутри php-файла я проверяю определенные данные и в случае, если что-то идет не так, я возвращаю простую строку «неверный» или «действительный» для определите результат, по пути в таком запросе вы можете добавить предупреждение или два, чтобы убедиться, что ваша строка отправляется, так как будет трудно увидеть ошибку в вашем JavaScript.
Возможно, это не слишком конкретно, но я надеюсь, что это немного поможет.