Удаление недопустимых символов из XML перед сериализацией с помощью XMLSerializer ()

я пытаюсь сохранить пользовательский ввод в XML-документе на стороне клиента (javascript) и передать его на сервер для сохранения.

Например, один пользователь вставил текст, содержащий символ STX (0x2). XMLSerializer не экранировал символ STX и поэтому не сериализовался в правильно сформированный XML. Или, возможно, вызов .attr () должен был экранировать символ STX, но в любом случае был создан недопустимый XML.

найти вывод в браузере XMLSerializer () isn 'т всегда хорошо сформирован, (и недаже не удовлетворяет браузерсобственный DOMParser ()

В этом примере показано, что символ STX неправильно закодирован XMLSerializer ():

> doc = $.parseXML('\n');
    #document
> $(doc).find("elem").attr("someattr", String.fromCharCode(0x2));
    [ ​​ ]
> serializedDoc = new XMLSerializer().serializeToString(doc);
    ""
> $.parseXML(serializedDoc);
    Error: Invalid XML: 

Как мне создать XML-документ в браузере (с параметрами, определяемыми произвольным пользовательским вводом), чтобы он всегда был правильно сформирован (все правильно экранировано)? Я неНужно поддерживать IE8 или IE7.

(И да, я проверяю XML на стороне сервера, но если браузер передает серверу документ, который не является правильно сформированным, лучшее, что сервер может сделать, это отклонить его, чтоэто полезно для бедного пользователя)