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

Экранирование спецсимволов HTML в именованные, десятичные или шестнадцатеричные сущности и декодирование обратно. Корректно работает с эмодзи. В браузере.

Введённые данные и файлы остаются в браузере

Введите HTML или текст для экранирования либо вставьте сущности вроде <, чтобы декодировать их.

Здесь появится экранированный или декодированный текст.

На этой странице

Экранируйте амперсанды, угловые скобки, кавычки и не-ASCII символы в HTML-сущности или превращайте сущности обратно в обычный текст. Инструмент написан на обычном JavaScript и работает в браузере, поэтому вставленная разметка никуда не отправляется.

Подробное описание функциональности

Три режима кодирования покрывают типичные задачи. Режим специальных символов (по умолчанию) экранирует пять символов, важных для разметки и атрибутов HTML: &, <, >, " и '. Режим не-ASCII не трогает разметку и преобразует буквы с диакритикой, символы и эмодзи — это нужно, когда шаблон или письмо должны оставаться в чистом ASCII. Режим всех символов делает и то и другое.

Сущности записываются как именованные (&amp;, &copy;), десятичные (&#169;) или шестнадцатеричные (&#xA9;) ссылки. Имена в инструменте есть только примерно у 30 распространённых символов — &copy;, &mdash;, &euro;, &nbsp; и подобных; остальные символы даже в именованном формате записываются шестнадцатеричной ссылкой. Эмодзи и другие символы за пределами базовой многоязыковой плоскости становятся одной ссылкой, например &#x1F600;.

Декодирование понимает те же именованные сущности, а также десятичные и шестнадцатеричные ссылки (&#169;, &#xA9;, &#XA9;) и выполняется за один проход, поэтому &amp;lt; корректно превращается в &lt;, а не в <. Неизвестные имена вроде &hearts; и ссылки без завершающей точки с запятой остаются как есть.

Практические примеры

Экранирование разметки: <a href="x">Tom & Jerry</a> с настройками по умолчанию превращается в &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&lt;/a&gt;.

Только не-ASCII: © 2026 — café <b> становится &copy; 2026 &mdash; caf&#xE9; <b>: тег остаётся как был, а é, у которого нет имени в списке, записывается в hex.

Эмодзи: в режиме всех символов 😀 © превращается в &#128512; &#169; в десятичном формате и в &#x1F600; &#xA9; в шестнадцатеричном.

Декодирование: &lt;p&gt; &#169; &#x1F600; &euro; декодируется в <p> © 😀 €, а &amp;lt; — в &lt;.

Как использовать этот инструмент

  1. Вставьте текст

    Введите или вставьте обычный текст или HTML в поле Текст для кодирования/декодирования.

  2. Выберите режим и формат

    В Режим кодирования выберите Только специальные символы (& < > " '), Только не-ASCII символы или Все символы (специальные + не-ASCII). В Формат сущностей — Именованный (&amp;), Десятичный (&#38;) или Шестнадцатеричный (&#x26;). Эти настройки влияют только на кодирование.

  3. Закодируйте или декодируйте

    Нажмите Закодировать в HTML, чтобы экранировать текст, или Декодировать из HTML, чтобы превратить сущности обратно в символы.

  4. Скопируйте результат

    Копировать помещает результат в буфер обмена. Поменять местами возвращает его во ввод — например, чтобы декодировать второй слой.

Советы и лучшие практики

  • Для текста внутри HTML-элементов или атрибутов в кавычках достаточно экранировать пять спецсимволов; не-ASCII текст не нужно превращать в сущности, если страница отдаётся в UTF-8.
  • Экранирование — не полная защита от XSS: значения в href, внутри <script> или в CSS требуют обработки под свой контекст, например проверки URL или JSON-кодирования.
  • Апостроф кодируется как &#x27; (или &#39; в десятичном формате), а не &apos;, которой не было в HTML 4.
  • Декодирование выполняется за один проход: дважды экранированный текст вроде &amp;amp; сначала даёт &amp;; нажмите Поменять местами и декодируйте снова.
  • Декодируются только именованные сущности из встроенного списка; числовые ссылки работают для любого символа Unicode.