Хорошо, здесь есть несколько хороших ответов. Эти методы будут работать. Тем не менее, я должен поставить под сомнение вашу основную посылку. Я предполагаю, что эти значения, которые вы обсуждаете, в основном должны быть параметрами строки запроса, да? Это самая распространенная причина отфильтровывать специальные символы.
В течение двух или трех лет я использовал подход кодирования / декодирования строк, чтобы пропустить подобные вещи через строку запроса. Всегда были проблемы с перебоями, потому что - черт возьми, - существует так много разных возможных специальных символов, и проблемы в одном браузере по сравнению с другим и т. Д. Наши методы не были такими сложными, как описанные здесь, но все же. В 2005 году, во время переписывания большей части системы, над которой я работал, мы решили перейти только к передаче значений id через строку запроса. Этот подход работал очень хорошо, и я не могу думать о каких-либо недостатках к нему. Если у вас есть база данных, у вас уже есть идентификатор, прикрепленный практически к каждой строке. Если это для поиска или тому подобного, вы всегда можете отправить его через форму сообщения - или вы можете использовать решение AJAX, которое не требует загрузки другой страницы.
Эти методы не будут лучшими в любой ситуации - здесь нет волшебной палочки больше, чем где-либо еще, - но этот подход был простым и очень функциональным для меня и моей команды, и поэтому я думаю, это то, что вы должны хотя бы рассмотреть.