Экранировать HTML символы и декодировать онлайн

Простой инструмент для безопасного преобразования текста между обычными символами и HTML-сущностями.

Как работает экранирование HTML символов

Экранирование HTML символов необходимо для правильного отображения текста в веб-страницах и предотвращения ошибок разметки. Специальные символы такие как &, <, >, " и ' заменяются на соответствующие HTML-сущности: &amp;, &lt;, &gt;, &quot;, &apos; или &#39;. Это позволяет браузеру интерпретировать символы как текст, а не как часть HTML.

Наш инструмент выполняет замену автоматически с помощью регулярных выражений и строковых функций, учитывая контекст — для текста внутри HTML-элементов или атрибутов.

Декодирование и многократное экранирование

Нередко в текстах встречаются несколько слоёв экранирования — например, &amp; вместо &, что возникает из-за повторных преобразований. Инструмент умеет распознавать такие случаи и возвращать исходные символы даже после сложных преобразований.

При декодировании поддерживаются стандартные именованные сущности и числовые коды. Если код некорректный или нестандартный, результат может быть непредсказуемым — это особенность HTML парсеров, а не инструмента.

Ограничения и безопасность применения

Инструмент работает только с HTML контекстом. Для JavaScript, CSS или URL требуется отдельное экранирование. Не полагайтесь на HTML экранирование для защиты от XSS во всех случаях — в некоторых атрибутах нужны дополнительные меры.

Все преобразования происходят исключительно локально в браузере, ваши данные не покидают устройство. Это удобно и безопасно для работы с конфиденциальным текстом.

Часто задаваемые вопросы

Какие символы обязательно экранировать для HTML?

Обязательно экранируются символы <b>&</b>, <b><</b>, <b>></b>, <b>"</b> и <b>'</b>, чтобы предотвратить искажение HTML-структуры и визуальных ошибок на странице.

Почему на странице отображается &amp;amp; вместо &amp;?

Это результат двойного экранирования: символ & был преобразован в <code>&amp;</code>, а затем снова экранирован в <code>&amp;amp;</code>. Для решения используйте декодирование до исходного уровня.

Достаточно ли HTML экранирования для защиты от XSS?

Нет, экранирование защищает только основной HTML. В атрибутах, скриптах и стилях требуются дополнительные методы, такие как строгая фильтрация и специальные функции.

В чём разница между &#39; и &apos;?

<code>&apos;</code> официально поддерживается только в XHTML, а <code>&#39;</code> работает во всех современных браузерах. Для HTML обычно используют числовой код <code>&#39;</code>.

Как убрать несколько слоёв экранирования?

Повторите декодирование столько раз, сколько нужно, пока не получите исходные символы. Инструмент позволяет выполнять декодирование несколько раз подряд.

Поддерживает ли инструмент все HTML сущности?

Да, он обрабатывает стандартные именованные и числовые сущности, но не гарантирует корректность для устаревших или нестандартных вариантов.

Что-то не так или есть идея? Сообщить