Skip to content

Бесплатный HTML-кодировщик сущностей — экранирование HTML

Кодируйте HTML-сущности и экранируйте спецсимволы (< > & " ') онлайн — бесплатно, без регистрации, 100% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.

Без отслеживания Работает в браузере Бесплатно

Ваш текст кодируется локально в браузере и никогда не загружается, не логируется и не сохраняется. Он остаётся на этом устройстве.

Параметры · Параметры формата и кодирования
Формат сущностей
0 символов
Закодированный HTML
0 символов
Проверено на корректность спецификации кодирования сущностей (именованные / десятичные / шестнадцатеричные), безопасное от XSS экранирование всех пяти спецсимволов в контекстах HTML и атрибутов, совместимое соглашение об апострофе ', приватность ввода без сети и без хранения, а также доступность (подписанные элементы управления, объявления в live-region при кодировании и копировании). — Go Tools Encoding Team · Jun 17, 2026

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

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

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

Есть три способа записать любую сущность, и они взаимозаменяемы. Именованная ссылка использует понятную метку (< для <, © для ©); десятичная числовая ссылка записывает кодовую точку символа в системе по основанию 10 (< для <); а шестнадцатеричная ссылка записывает ту же кодовую точку по основанию 16 (< для <), совпадая с нотацией U+XXXX стандарта Unicode. Именованные сущности читаются лучше всего, но существуют только для символов с определённым именем; числовые сущности могут представить любую кодовую точку, поэтому они безопасный запасной вариант. В таблице ниже перечислены сущности, к которым вы будете обращаться чаще всего:

| Символ | Именованная | Десятичная | Hex | |-----------|-------|---------|-----| | < | &lt; | &#60; | &#x3C; | | > | &gt; | &#62; | &#x3E; | | & | &amp; | &#38; | &#x26; | | " | &quot; | &#34; | &#x22; | | ' | &#x27; | &#39; | &#x27; | | (пробел) | &nbsp; | &#160; | &#xA0; | | © | &copy; | &#169; | &#xA9; | | ® | &reg; | &#174; | &#xAE; | | ™ | &trade; | &#8482; | &#x2122; | | € | &euro; | &#8364; | &#x20AC; | | £ | &pound; | &#163; | &#xA3; | | — | &mdash; | &#8212; | &#x2014; | | – | &ndash; | &#8211; | &#x2013; | | … | &hellip; | &#8230; | &#x2026; | | é | &eacute; | &#233; | &#xE9; |

Обратите внимание, что апостроф записывается как ' (или '), а не ': именованный ' был стандартизирован только в HTML5 и XML и небезопасен в старых парсерах HTML4, поэтому числовая форма — понятная везде — является совместимым выбором. Этот инструмент следует тому же соглашению, что и широко используемая библиотека he, поэтому вывод по умолчанию для ' — это '.

Различие между набором символов и сущностью стоит держать в голове, потому что оно объясняет опцию «Кодировать все символы не из ASCII». Кодировка (например, UTF-8) определяет, как символы хранятся в виде байтов; сущность — это способ записать символ, используя только обычные ASCII-символы & # ; и буквы или цифры. На современной UTF-8-странице é, — и 😀 — корректные сырые символы и вовсе не нуждаются в сущности — поэтому режим по умолчанию оставляет их в покое. Принудительно переводить их в сущности нужно лишь когда текст должен пройти через систему, не умеющую работать с сырым UTF-8, и тогда каждая кодовая точка не из ASCII переписывается как безопасная для ASCII числовая или именованная ссылка. И поскольку всё это работает в вашем браузере, экранируемая разметка — даже приватный шаблон или неопубликованный черновик — никогда не пересекает сеть. Для смежных преобразований инструменты JSON Escape и Base64 Encode / Decode отвечают за экранирование строк JavaScript и безопасную для двоичных данных передачу соответственно.

// Server-side templates auto-escape, but when you build HTML by hand you must escape yourself.
// The five reserved characters and their safe entities:
//   <  →  &lt;     >  →  &gt;     &  →  &amp;     "  →  &quot;     '  →  &#x27;

// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
  return str
    .replace(/&/g, '&amp;')   // & first, so later entities are not double-escaped
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/"/g, '&quot;')
    .replace(/'/g, '&#x27;'); // numeric form — safe in HTML4, HTML5 and XML
}

const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;
document.getElementById('out').innerHTML = `<p>${safe}</p>`; // renders as literal text

// ---------------------------------------------------------------
// In practice, prefer the platform's built-in escaping where it exists:
//   - React / Vue / Angular escape interpolated text by default
//   - Use textContent instead of innerHTML when you only need text:
//       el.textContent = userInput;  // the browser escapes for you
//   - Server frameworks (Jinja, ERB, Blade) auto-escape unless you opt out

Ключевые возможности

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

< > & " ' преобразуются в безопасные сущности ровно так, как это сделала бы закалённая библиотека защиты от XSS — включая совместимый ' для апострофа вместо небезопасного для HTML4 '. Это точный набор, обезвреживающий недоверенный ввод в контекстах элементов и атрибутов HTML.

Именованный, десятичный и шестнадцатеричный вывод

Получите те же символы в виде читаемых именованных сущностей (<, ©), десятичных числовых ссылок (<) или шестнадцатеричных ссылок (<). Выберите форму, которую ожидает принимающая система; все три при разборе раскрываются в одинаковые символы.

Опциональный режим кодирования всех символов не из ASCII

По умолчанию экранируются только зарезервированные символы, а диакритика и эмодзи остаются читаемым сырым UTF-8. Отметьте один флажок, чтобы преобразовать каждую кодовую точку выше 0x7F в безопасную для ASCII сущность для устаревших кодировок или систем, портящих UTF-8.

Живое мгновенное кодирование

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

Встроенный быстрый справочник сущностей

Справочная таблица самых распространённых сущностей — пять зарезервированных плюс ©, ®, ™, €, —,   и другие — расположена прямо на странице в именованной, десятичной и шестнадцатеричной форме, так что вам не придётся искать сущность где-то ещё.

Переключение к декодировщику в один клик

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

100% приватно, только в браузере

Всё кодирование происходит на вашем устройстве с помощью JavaScript — без сетевых запросов, без логирования, без хранения, что проверяется в DevTools → Network. Приватная разметка, шаблоны писем и неопубликованные черновики никогда не покидают вкладку.

Доступно на 15 языках

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

Разобранные примеры

Экранирование HTML-фрагмента (режим «спецсимволы» по умолчанию)

<a href="x">Tom & Jerry's</a>
&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;

В режиме «спецсимволы» по умолчанию кодировщик переписывает только пять символов, имеющих значение в HTML-разметке: < превращается в <, > — в >, & — в &, " — в ", а ' — в '. Апостроф выводится как числовой ', а не как именованный ', потому что ' не определён в HTML4 и старые парсеры могут на нём споткнуться, тогда как шестнадцатеричная форма понятна всем. После кодирования браузер отображает строку как обычный текст — тег <a> показывается, а не активируется, — именно так безопасно показывают разметку внутри страницы.

Символы не из ASCII сохраняются в режиме по умолчанию

Visit our café — it's 😀
Visit our café — it&#x27;s 😀

Режим «спецсимволы» затрагивает только пять зарезервированных символов HTML, поэтому буквы с диакритикой (café), длинное тире (—) и эмодзи (😀) проходят без изменений. Вывод остаётся читаемым и компактным — именно то, что нужно для UTF-8-страниц, уже объявивших <meta charset="utf-8">. Экранируется лишь апостроф в «it's» — в '. Если вам нужно преобразовать каждый символ не из ASCII в сущность для устаревшей кодировки, отметьте «Кодировать все символы не из ASCII» — см. пример ниже.

Десятичные числовые сущности

<>&"'
&#60;&#62;&#38;&#34;&#39;

Переключите формат на десятичный, и каждый спецсимвол записывается как десятичная числовая ссылка: < — это <, > — >, & — &, " — ", а ' — '. Десятичные сущности — самая широко совместимая числовая форма: их понимает каждый соответствующий стандарту парсер HTML и XML, что делает их безопасным выбором, когда нельзя быть уверенным, что принимающая система поддерживает именованные сущности вроде ©.

Шестнадцатеричные числовые сущности

<>&"'
&#x3C;&#x3E;&#x26;&#x22;&#x27;

Формат Hex записывает каждый символ как шестнадцатеричную числовую ссылку: < — это <, > — >, & — &, " — ", а ' — '. Шестнадцатеричная и десятичная формы взаимозаменяемы — обе ссылаются на одну и ту же кодовую точку Unicode, — но шестнадцатеричная один к одному соответствует нотации U+XXXX из стандарта Unicode, поэтому многие разработчики предпочитают её при документировании или анализе конкретных кодовых точек.

Кодировать все символы не из ASCII

café
caf&eacute;  (named)  ·  caf&#233;  (decimal)  ·  caf&#xE9;  (hex)

Отметьте «Кодировать все символы не из ASCII», и каждая кодовая точка выше 0x7F преобразуется в сущность, а не только пять зарезервированных. Буква é в café становится именованной é, десятичной é или шестнадцатеричной é в зависимости от выбранного формата — все три ссылаются на один и тот же символ, U+00E9. Этот режим для страниц в не-Unicode-кодировке или для систем, искажающих сырой UTF-8, где принудительное приведение всего к 7-битным ASCII-сущностям гарантирует, что текст переживёт передачу без потерь.

Как пользоваться HTML-кодировщиком сущностей

  1. 1

    Вставьте ваш HTML или текст

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

  2. 2

    Выберите формат сущностей

    Именованный — читаемый вариант по умолчанию (<, &, ©). Переключитесь на Десятичный (<) или Hex (<), когда принимающая система предпочитает числовые ссылки или нельзя гарантировать поддержку именованных сущностей.

  3. 3

    При необходимости кодируйте все символы не из ASCII

    Оставьте это выключенным для современных UTF-8-страниц, чтобы диакритика и эмодзи оставались читаемыми сырыми символами. Включайте только когда текст должен пережить устаревшую однобайтовую кодировку — тогда каждый символ выше 0x7F преобразуется в безопасную для ASCII сущность.

  4. 4

    Скопируйте закодированный результат

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

  5. 5

    Нужно обратное? Смените направление

    Используйте «Сменить направление», чтобы переключиться на HTML-декодировщик сущностей, когда хотите превратить сущности обратно в символы, которые они представляют.

Частые ошибки кодирования HTML

Экранировали амперсанд последним, вызвав двойное экранирование

Если заменить < и > до &, то у только что созданных сущностей & экранируется повторно, и < превращается в &lt; и отображается как буквальный текст. Всегда экранируйте & первым.

✗ Неверно
replace < and > first, then &  →  &lt;  becomes  &amp;lt;
✓ Верно
escape & first, then the rest  →  &lt;  stays  &lt;

Использовали ' для апострофа в устаревших контекстах

' не определён в HTML4, и некоторые почтовые клиенты показывают его буквально. Используйте числовой ' или ', понятный каждому парсеру, при работе со старыми или смешанными окружениями.

✗ Неверно
It&apos;s here  →  may render as  It&apos;s here
✓ Верно
It&#x27;s here  →  renders as  It's here

Закодировали данные дважды

Повторный прогон уже экранированного текста через кодировщик кодирует его дважды: & становится &amp;, и пользователь видит & вместо &. Экранируйте ровно один раз, на выходе.

✗ Неверно
&amp;  encoded again  →  &amp;amp;  shows as  &amp;
✓ Верно
&amp;  left as-is  →  renders as  &

Использовали экранирование HTML для контекста URL или JavaScript

HTML-сущности не делают значение безопасным внутри URL или встроенного скрипта. Пробел в URL требует %20, а строка в JavaScript — экранирования JS/JSON. Сопоставляйте кодирование с тем, куда попадает значение.

✗ Неверно
href="/search?q=a&amp;b c"  →  the space still breaks the URL
✓ Верно
href="/search?q=a%26b%20c"  →  URL-encoded, valid

Без необходимости закодировали символы не из ASCII на UTF-8-странице

Принудительное превращение café в café на современной UTF-8-странице раздувает исходник и ухудшает читаемость без всякой пользы. Оставляйте символы не из ASCII сырыми, пока устаревшая кодировка действительно не потребует сущностей.

✗ Неверно
caf&eacute; on a UTF-8 page  →  needless, harder to read
✓ Верно
café on a UTF-8 page  →  valid and clean

Забыли экранировать кавычки внутри значения атрибута

Вставка неэкранированной " в атрибут позволяет значению вырваться и внедрить новые атрибуты — вектор XSS. Всегда экранируйте " (и желательно ') в контексте атрибута, что этот инструмент делает по умолчанию.

✗ Неверно
title="He said "hi""  →  attribute breaks out
✓ Верно
title="He said &quot;hi&quot;"  →  contained

Кто пользуется этим инструментом

Показ примеров кода на веб-странице
Пишете руководство или документацию, где нужно показать буквальный HTML? Экранируйте фрагмент, чтобы <strong>bold</strong> отображался как текст, а не отрисовывался. Вставьте разметку, скопируйте экранированный вывод и поместите его внутрь блока <pre> или <code>.
Очистка пользовательского ввода от XSS
Перед вставкой любой пользовательской строки в ваш HTML экранируйте пять зарезервированных символов, чтобы полезная нагрузка вроде <script>…</script> стала безвредным текстом. Это основополагающая защита от межсайтового скриптинга, когда вы собираете разметку вручную.
Хранение разметки в поле базы данных или JSON
Нужно сохранить HTML-фрагмент как обычную строку, чтобы он не интерпретировался дальше по конвейеру? Сначала закодируйте его, чтобы угловые скобки и амперсанды пережили хранение и повторный показ в целости, а затем декодируйте на обратном пути.
Создание шаблонов писем и контента CMS
Почтовые клиенты и системы управления контентом нетерпимы к сырым спецсимволам. Экранируйте зарезервированный набор — и при необходимости все символы не из ASCII — чтобы ваш шаблон отображался единообразно в клиентах, которые могут не разделять вашу кодировку.
Преобразование текста для устаревшей кодировки
Целитесь в систему, не умеющую работать с сырым UTF-8? Включите «Кодировать все символы не из ASCII», чтобы переписать каждую букву с диакритикой, символ и эмодзи как безопасную для ASCII сущность, гарантируя, что текст переживёт передачу через 7-битные конвейеры.
Экранирование значений атрибутов XML и SVG
XML и встроенный SVG используют те же зарезервированные символы, что и HTML. Закодируйте кавычки и угловые скобки, чтобы строка со встроенной разметкой безопасно встала в значение атрибута, не ломая структуру документа.
Быстрый поиск сущности
Забыли, как пишется знак товарного знака — ™ или ™? Введите символ, считайте его именованную, десятичную и шестнадцатеричную сущность из вывода или загляните во встроенную справочную таблицу, не покидая страницу.

Как работает кодировщик

Режим спецсимволов (по умолчанию)
По умолчанию экранируются только пять зарезервированных символов HTML — & < > " ' — в соответствии с правилами сериализации WHATWG HTML для безопасного вывода. & заменяется первым, чтобы сущности, созданные для остальных символов, не были экранированы дважды. Все прочие символы, включая не из ASCII, проходят без изменений.
Апостроф использует '
Вместо именованного ' — не определённого в HTML4 и небезопасного в некоторых старых парсерах — одиночная кавычка выводится как числовой ' (десятичный '), ссылающийся на U+0027. Это совпадает с соглашением хорошо протестированных библиотек вроде he и гарантирует, что вывод безопасен в HTML4, HTML5 и XML одинаково.
Именованное, десятичное и шестнадцатеричное кодирование
Селектор формата управляет тем, как записывается каждый экранированный символ: Именованный использует определённые метки там, где они есть (<, ©), Десятичный записывает кодовую точку Unicode по основанию 10 (<), а Hex — по основанию 16 (<). Числовые формы ссылаются на те же кодовые точки, что и именованные, и взаимозаменяемы при разборе.
Опция кодирования всех символов не из ASCII
При включении каждый символ с кодовой точкой выше 0x7F преобразуется в сущность выбранного формата — café становится café (именованный), café (десятичный) или café (hex). Символы из астральных плоскостей вроде эмодзи кодируются полной кодовой точкой (😀 → 😀). Это даёт 7-битный чистый ASCII-вывод для устаревшей передачи.
Кодировка против сущностей
Набор символов определяет, как текст хранится в виде байтов; сущность — это способ записать символ, используя только ASCII. На UTF-8-странице символы не из ASCII не нуждаются в сущности, поэтому по умолчанию они остаются сырыми. Кодировать всё нужно лишь когда вывод должен пройти через не-Unicode-кодировку или враждебную к UTF-8 систему.
Локально в браузере, ноль сети
Кодирование выполняется синхронно в JavaScript в основном потоке; нет ни вызовов API, ни обмена с воркером на сервере, ни сохранения. Ввод никогда не покидает страницу, в чём можно убедиться, наблюдая пустую панель Network во время ввода.

Лучшие практики экранирования HTML

Экранируйте на выходе, в правильном контексте
Кодируйте данные в момент вставки в HTML, а не при получении, и сопоставляйте кодирование с контекстом. Кодирование HTML-сущностей — для содержимого элементов и атрибутов HTML; используйте URL-кодирование внутри URL и экранирование JavaScript/JSON внутри блоков скриптов. Экранирование в неверном контексте оставляет брешь.
Всегда экранируйте недоверенный ввод
Любая строка, исходящая от пользователя, загрузки или внешнего API, должна быть экранирована перед попаданием в вашу разметку. Это основная защита от XSS: полезная нагрузка вроде <script>alert(1)</script> становится безвредным текстом, как только угловые скобки превращаются в сущности.
Предпочитайте встроенное экранирование там, где оно есть
React, Vue и большинство серверных шаблонизаторов экранируют интерполированный текст автоматически; установка element.textContent тоже экранирует за вас. Используйте этот инструмент для разовых преобразований и для понимания вывода — но в коде приложения опирайтесь на авто-экранирование фреймворка, а не пишите его вручную.
Оставляйте символы не из ASCII сырыми на UTF-8-страницах
Если ваша страница объявляет <meta charset="utf-8">, не кодируйте диакритику и эмодзи в сущности — сырой UTF-8 короче, читаемее и так же корректен. Приберегите «Кодировать все символы не из ASCII» для подлинных случаев устаревших кодировок, которым это действительно нужно.
Используйте числовой апостроф в смешанных контекстах
Когда вывод может потребляться старыми парсерами, XML-процессорами или почтовыми клиентами, предпочитайте числовой ' именованному ' для одиночной кавычки. Числовая форма понятна везде; именованная — нет, и случайный буквальный «'» в отрисованном тексте — распространённая, легко устранимая ошибка.

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

Отправляется ли мой текст на ваш сервер при кодировании?
Нет. Каждый символ кодируется целиком в вашем браузере с помощью JavaScript — откройте DevTools → Network, и вы увидите, что при вводе или вставке не отправляется ни одного запроса. Ничего не загружается, не логируется и не записывается на диск. Эта приватность важна, потому что экранируемая разметка часто конфиденциальна: фрагмент из приватной CMS, внутренний шаблон письма, ответ службы поддержки или черновик статьи, который вы ещё не опубликовали. На серверном кодировщике каждый из них прошёл бы по сети к машине, которую вы не контролируете; здесь текст никогда не покидает вкладку. В этом и весь смысл экранировать HTML на стороне клиента, а не вставлять его на сайт, который, в принципе, может хранить копию всего, что обрабатывает.
Что значит экранировать HTML и зачем это нужно?
Экранирование HTML — это замена символов, которые браузер иначе истолковал бы как разметку, на их эквиваленты-сущности, чтобы они отображались как обычный текст. Классический случай — показ кода на странице: если вы хотите, чтобы посетитель прочитал строку <strong>bold</strong>, а не увидел слово «bold» жирным шрифтом, вы экранируете угловые скобки в <strong>bold</strong>. Другой, более важный случай — безопасность: вставляя недоверенный пользовательский ввод в страницу, экранирование пяти зарезервированных символов (< > & " ') не даёт этому вводу вырваться из своего контекста и внедрить тег <script> — основная защита от межсайтового скриптинга (XSS). Любой текст, исходящий от пользователя и попадающий в ваш HTML, должен быть сначала экранирован.
В чём разница между именованными, десятичными и шестнадцатеричными сущностями?
Все три дают один и тот же символ; различаются они лишь способом записи ссылки. Именованная сущность использует человекочитаемую метку — < для <, & для &, © для © — её легко читать, но она работает только для символов с определённым именем. Десятичная числовая сущность записывает кодовую точку Unicode в системе по основанию 10, как < для < или é для é. Шестнадцатеричная сущность записывает ту же кодовую точку по основанию 16, как < для < или é для é, повторяя нотацию U+XXXX из стандарта Unicode. Именованные сущности самые читаемые и подходят по умолчанию для распространённых зарезервированных символов; числовые (десятичные или шестнадцатеричные) могут закодировать любую кодовую точку, в том числе без имени, что делает их безопасным выбором, когда нельзя гарантировать поддержку конкретной именованной сущности на стороне получателя.
Почему апостроф кодируется как ', а не '?
Потому что ' безопасен не везде. Именованная сущность ' появилась только в HTML5 и XML — в HTML4 она не определена, поэтому некоторые старые парсеры и почтовые клиенты показывают её как буквальный текст «'» вместо апострофа. Числовая ссылка ' (или её десятичный аналог ') указывает на ровно тот же символ, U+0027, и понятна каждому когда-либо написанному соответствующему парсеру. Следуя поведению хорошо протестированных библиотек вроде he, этот инструмент выводит для апострофа универсально совместимый ', чтобы результат можно было безопасно вставить в любой HTML-, XML- или атрибутный контекст без сюрпризов.
Нужно ли кодировать символы не из ASCII, такие как é, — или 😀?
Обычно нет. Если ваша страница объявляет <meta charset="utf-8"> — а так делает практически каждая современная страница, — то буквы с диакритикой, длинные тире и эмодзи совершенно корректны как сырой UTF-8 и не требуют никакого кодирования. Поэтому режим «спецсимволы» по умолчанию оставляет их нетронутыми, сохраняя вывод коротким и читаемым. Кодировать символы не из ASCII нужно только тогда, когда текст будет отдаваться или храниться в устаревшей однобайтовой кодировке либо пропускаться через систему, портящую сырой UTF-8. В этих случаях отметьте «Кодировать все символы не из ASCII», и каждая кодовая точка выше 0x7F преобразуется в безопасную для ASCII сущность. Если сомневаетесь — оставьте режим по умолчанию и убедитесь, что объявление кодировки верное.
Защищает ли экранирование HTML от XSS-атак?
Экранирование — это основа защиты от XSS, но оно зависит от контекста, поэтому честный ответ — «да, при правильном применении». Кодирование пяти зарезервированных символов перед вставкой недоверенного ввода в содержимое HTML-элемента надёжно не даёт злоумышленнику внедрить теги или скрипты — полезная нагрузка вроде <script>alert(1)</script> становится безвредным текстом. Оговорка в том, что у HTML несколько контекстов, у каждого свои правила экранирования: внутри значения атрибута нужно экранировать кавычки (что этот инструмент делает), внутри блока <script> или встроенного обработчика событий нужно экранирование JavaScript, а внутри URL — URL-кодирование. Используйте кодирование HTML-сущностей для HTML- и атрибутных контекстов; для URL обратитесь к URL-кодировщику / декодировщику, а для встраивания строки в JavaScript или JSON — к инструменту JSON Escape. Экранируйте на выходе, в том контексте, куда попадают данные.
Как обратить это — превратить сущности обратно в символы?
Используйте парный HTML-декодировщик сущностей. Он берёт строку, полную сущностей вроде <div> & ©, и преобразует её обратно в реальные символы <div> & ©, обрабатывая именованные сущности, десятичные ссылки, шестнадцатеричные ссылки и даже устаревшие незавершённые сущности вроде &copy без завершающей точки с запятой. Кодирование и декодирование — точные обратные операции для зарезервированных символов, поэтому текст можно прогонять через оба инструмента туда-обратно без потерь. Если вы выясняете, почему страница показывает буквальное &lt; вместо <, декодировщик — самый быстрый способ увидеть, во что на самом деле раскрываются сущности.
Изменит ли кодирование видимый текст или сломает мою вёрстку?
Нет — в этом и весь смысл. Сущность — это просто альтернативное написание символа: когда браузер разбирает <, он отображает единственный глиф <, идентичный сырому символу. Поэтому корректно экранированная страница выглядит для посетителя точно так же, как с сырыми символами; единственная разница в том, что браузер трактует экранированную версию как текст, а не как разметку. Единственное, что меняет экранирование, — это длина и вид исходной строки, поэтому экранируют только то, что нужно. Если ваша цель — привести в порядок и сделать отступы в неаккуратной разметке, а не экранировать её, это другая задача — используйте HTML-форматировщик.

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

Все инструменты →

Base64 декодер и кодировщик

Кодирование и форматирование

Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.

Конвертер Base64 в изображение

Кодирование и форматирование

Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.

Конвертер CSV в JSON

Кодирование и форматирование

Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.

Конвертер .env в JSON

Кодирование и форматирование

Вставьте файл .env — получите JSON мгновенно. Пароли БД, API-ключи и токены не покидают браузер: 100% приватно, без загрузки, парсер dotenv.

Бесплатный HTML-декодировщик сущностей — unescape HTML

Кодирование и форматирование

Декодируйте HTML-сущности и снимайте экранирование HTML онлайн — бесплатно, без регистрации, 100% в браузере. Преобразует именованные, десятичные и hex-ссылки обратно в символы; данные не загружаются.

Конвертер HTML в Markdown

Кодирование и форматирование

Конвертируйте HTML в чистый Markdown прямо в браузере — GFM-таблицы, списки задач и ссылки. Выбирайте ATX/Setext заголовки и inline или reference ссылки. Удобно для переноса веб-контента и подачи в LLM. 100% приватно.