Перейти к содержимому
ToolMug

Кодирование и декодирование HTML-сущностей

Экранируйте текст, чтобы он безопасно отображался внутри HTML, декодируйте текст с сущностями обратно в читаемые символы или преобразуйте символы в escape-последовательности Unicode для JavaScript, JSON и CSS. Декодер понимает все именованные сущности стандарта HTML5.

Работает в браузере — введённые данные никуда не загружаются

Как пользоваться

  1. Выберите «Кодировать» или «Декодировать» и режим HTML или «Escape-последовательности Unicode».
  2. Вставьте текст. Результат обновляется по мере ввода.
  3. Для кодирования HTML выберите, экранировать только пять спецсимволов или ещё и все символы вне ASCII.
  4. Скопируйте результат.

Описание параметров

Экранировать спецсимволы
Преобразует & < > " ' в сущности. Для веб-страницы в UTF-8 этого достаточно, а остальные символы остаются читаемыми.
Также экранировать не-ASCII
Превращает каждый символ вне ASCII в числовую сущность — для систем, которые не умеют хранить UTF-8.
Использовать именованные сущности
Использует имена вроде &copy; и &nbsp;, если они есть, в остальных случаях — числовые сущности.
Escape-последовательности Unicode
\uXXXX для JavaScript и JSON (эмодзи превращаются в две последовательности — суррогатную пару), \u{…} для современного JavaScript, U+XXXX для обозначения кодовых точек и &#…; как десятичные HTML-сущности.

Распространённые сущности

Символ Именованная Числовая
& &amp; &#38;
< &lt; &#60;
> &gt; &#62;
“ &quot; &#34;
’ &apos; &#39;
неразрывный пробел &nbsp; &#160;
© &copy; &#169;
— &mdash; &#8212;

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

Защищает ли экранирование HTML от XSS?

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

Чем &nbsp; отличается от обычного пробела?

Неразрывный пробел (U+00A0) выглядит как пробел, но не даёт браузеру перенести строку в этом месте, а несколько таких пробелов подряд не схлопываются в один.

Почему &copy без точки с запятой всё равно декодируется?

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

Как записать эмодзи в JSON в виде escape-последовательности?

Выберите «Escape-последовательности Unicode» с вариантом \uXXXX. Эмодзи за пределами базовой многоязычной плоскости (BMP) превращаются в две последовательности, например 😀 становится 😀.

Конфиденциальность

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

Похожие инструменты