Экранирование строк

Экранируйте или разэкранируйте строки для 8 форматов: HTML, XML, JavaScript, Java, .Net (C#), JSON, CSV и SQL.
Вся обработка выполняется локально в вашем браузере — ваши данные никуда не загружаются.
Формат:
Направление:
⚠ Предупреждение о безопасности: экранирование строк не заменяет параметризованные запросы. Одно лишь экранирование НЕ защищает от SQL-инъекций. В продакшен-коде всегда используйте параметризованные запросы (подготовленные выражения).
Как пользоваться: выберите формат и направление (Экранировать / Разэкранировать), затем введите или вставьте текст — результат обновится автоматически. Нажмите Обработать, чтобы запустить преобразование вручную.
Для режимов JSON, JavaScript, Java и .Net отметьте Экранировать все не-ASCII символы, чтобы превратить символы вроде китайских в последовательности \uXXXX.
Разэкранировать обращает экранирование: &lt; становится <, \n становится переводом строки и т.д.
HTML: Экранировать преобразует & < > " ' в HTML-сущности (&amp; &lt; &gt; &quot; &#39;). Используйте это, когда встраиваете пользовательский текст в HTML, чтобы предотвратить XSS-атаки.
Разэкранировать преобразует HTML-сущности (&amp; &lt; &gt; &quot; &#39;) обратно в исходные символы. Использует собственный HTML-парсер браузера для надёжного декодирования всех именованных и числовых сущностей.
XML: Экранировать преобразует те же 5 символов, что и HTML (& < > " '), в безопасные для XML сущности. XML требует экранировать все символы &, даже в значениях атрибутов.
Разэкранировать преобразует сущности XML обратно в исходные символы. Обрабатывает 5 предопределённых сущностей XML и числовые ссылки на символы. Логика та же, что у разэкранирования HTML.
JavaScript: Экранировать преобразует специальные символы в управляющие последовательности JavaScript: \n \t \\ \" \' \xHH \uHHHH \u{H...}. Используйте это, когда динамически формируете строковые литералы JavaScript.
Разэкранировать преобразует управляющие последовательности JavaScript (\n \t \xHH \uHHHH и т.д.) обратно в литеральные символы. Обрабатывает все стандартные управляющие последовательности ECMAScript, включая кодовые точки \u{H...}.
JSON: Экранировать преобразует \", \\ и управляющие символы в безопасные для JSON последовательности по RFC 8259. Используйте это, когда встраиваете текст в строковые значения JSON.
Разэкранировать преобразует последовательности экранирования JSON (\" \\ \n \uXXXX и т.д.) обратно в символы. Следует RFC 8259: декодируются только допустимые последовательности JSON.
CSV: Экранировать по RFC 4180: заключает поля в двойные кавычки, если они содержат запятые, двойные кавычки или переводы строк. Внутренние двойные кавычки удваиваются (" → "").
Разэкранировать обращает экранирование CSV по RFC 4180: убирает внешние двойные кавычки и разудваивает внутренние ("" → "). Корректно обрабатывает многострочные поля и заключённые в кавычки запятые.
SQL: Экранировать экранирует одинарные кавычки удвоением (' → ''), что работает во всех основных СУБД (MySQL, PostgreSQL, SQL Server, SQLite). Это касается только экранирования строковых литералов — это не защищает от SQL-инъекций в динамических запросах.
Разэкранировать преобразует удвоенные одинарные кавычки ('' → ') обратно в одинарные. Обращает стандартное экранирование строковых литералов SQL.
Java: Экранировать преобразует специальные символы в управляющие последовательности Java: \n \t \r \\ \" \' \uXXXX и т.д. Используйте это при создании строковых литералов Java.
Разэкранировать преобразует управляющие последовательности Java обратно в литеральные символы. Обрабатывает все стандартные управляющие последовательности Java, включая Unicode-экранирование \uXXXX.
.Net (C#): Экранировать преобразует специальные символы в управляющие последовательности C#: \n \t \r \a \v \0 \\ \" \uXXXX \UHHHHHHHH и т.д. Используйте это при создании строковых литералов C#.
Разэкранировать преобразует управляющие последовательности C# обратно в литеральные символы. Обрабатывает все стандартные последовательности C#, включая \UHHHHHHHH (UTF-32) и шестнадцатеричные экранирования \xHH... переменной длины.
Экранирование зависит от контекста

Один и тот же текст требует разного экранирования в зависимости от места, куда попадает: тело HTML требует &lt; &amp; &gt;, атрибут в двойных кавычках дополнительно требует &quot;, строка JavaScript требует обратных экранирований, а URL — процентного кодирования. Экранирование не под тот контекст — так и возникают внедрение разметки и XSS.

Правило большого пальца: экранируйте под место назначения, а не под источник — решайте по тому, куда идут данные, а не по тому, откуда они пришли.