Бесплатный HTML-декодировщик сущностей — unescape HTML
Декодируйте HTML-сущности и снимайте экранирование HTML онлайн — бесплатно, без регистрации, 100% в браузере. Преобразует именованные, десятичные и hex-ссылки обратно в символы; данные не загружаются.
Ваш текст декодируется локально в браузере и никогда не загружается, не логируется и не сохраняется. Он остаётся на этом устройстве.
Параметры · Параметры декодирования
Что такое декодирование HTML-сущностей?
Декодирование HTML-сущностей — также называемое снятием экранирования HTML — это процесс преобразования ссылок на символы обратно в символы, которые они представляют. Там, где кодирование заменяет буквальный < на сущность <, чтобы браузер показал его как текст, декодирование делает обратное: оно просматривает строку в поисках ссылок вроде <, &, <, > или © и подставляет вместо каждой реальный символ (<, &, <, >, ©). Это операция, которую вы запускаете, когда у вас есть разметка, которая хранилась или передавалась в экранированной форме, и нужен реальный текст обратно — чтобы прочитать его, отредактировать, передать другой программе или понять, почему страница отрисовывает < вместо <.
Стоит точно понимать, что делает этот инструмент. Он декодирует сущности в символы; он не переформатирует и не проверяет разметку. Если вы хотите взять экранированную строку и восстановить её буквальные символы, это правильный инструмент. Чтобы пойти в обратную сторону и превратить символы в сущности, используйте HTML-кодировщик сущностей; а чтобы сделать отступы и привести в порядок блок HTML, используйте HTML-форматировщик. Кодирование и декодирование — точные обратные операции, поэтому строка, отправленная через кодировщик и обратно через декодировщик, возвращается без изменений.
Есть три вида ссылок, которые декодировщик должен понимать, и он обрабатывает их все. Именованная ссылка использует определённую метку (< для <, © для ©, — для —); десятичная числовая ссылка записывает кодовую точку Unicode по основанию 10 (< для <); а шестнадцатеричная числовая ссылка записывает ту же кодовую точку по основанию 16 (< для <), совпадая с нотацией U+XXXX стандарта Unicode. Надёжный декодировщик принимает любую из них, в любой смеси, потому что разные кодировщики выводят разные формы. В таблице ниже показаны ссылки, которые встретятся чаще всего, и символ, в который декодируется каждая:
| Сущность (именованная) | Десятичная | Hex | Декодируется в | |----------------|---------|-----|------------| | < | < | < | < | | > | > | > | > | | & | & | & | & | | " | " | " | " | | ' | ' | ' | ' | | |   |   | (неразрывный пробел) | | © | © | © | © | | ® | ® | ® | ® | | ™ | ™ | ™ | ™ | | € | € | € | € | | £ | £ | £ | £ | | — | — | — | — | | – | – | – | – | | … | … | … | … | | 😀 | 😀 | 😀 | 😀 |
Два поведения отличают тщательный декодировщик. Во-первых, он восстанавливает символы из астральных плоскостей — всё выше U+FFFF, включая большинство эмодзи — из их числовых ссылок, а не выдаёт сломанный полусимвол; 😀 корректно становится 😀. Во-вторых, он следует снисходительному разбору браузера для небольшого набора устаревших именованных сущностей, исторически появлявшихся без завершающей точки с запятой, поэтому © 2026 всё равно декодируется в © 2026, хотя строгий XML это отверг бы. Этот инструмент делает и то и другое, совпадая с поведением широко используемой библиотеки he, так что его вывод согласуется с тем, что отрисовал бы настоящий браузер.
Предостережение, уместное для каждого декодировщика: декодированный текст по определению не экранирован. Декодирование — это обратная сторона экранирования, защищающего страницы от межсайтового скриптинга, поэтому декодированная строка, содержащая тег <script> или обработчик событий, снова стала живой, опасной разметкой. Никогда не декодируйте недоверенный ввод и затем не вставляйте его на страницу через innerHTML — это вновь открывает ровно ту дыру, которую экранирование должно было закрыть. Декодируйте, когда вам нужны сырые символы для чтения, редактирования или хранения; если результат будет отрисован обратно в HTML, сначала заново экранируйте его в контексте назначения. И поскольку каждый байт обрабатывается в вашем браузере, декодируемые экранированные строки — даже приватная запись или неопубликованный черновик — никогда не пересекают сеть. Для соседних преобразований URL-кодировщик / декодировщик отвечает за процентное кодирование, а Base64 Encode / Decode — за безопасную для двоичных данных передачу.
// Decoding is the inverse of escaping. The classic round-trip:
// < → < > → > & → & " → " ' → '
// Browser — the safest decoder is the platform itself. Use textarea, NOT innerHTML on a live node,
// so the decoded markup is never executed.
function decodeHtml(str) {
const ta = document.createElement('textarea');
ta.innerHTML = str; // the parser resolves entities into text
return ta.value; // .value is plain text — no script runs
}
decodeHtml('<div> & ©'); // → '<div> & ©'
decodeHtml('<>'); // → '<>'
decodeHtml('😀'); // → '😀'
decodeHtml('© 2026'); // → '© 2026' (lenient, no semicolon)
// ---------------------------------------------------------------
// SECURITY: decoded text is unescaped. Never do this with untrusted input:
// el.innerHTML = decodeHtml(userInput); // ❌ reopens the XSS hole
// If the decoded value must be displayed, re-escape it in its destination context first,
// or assign it as text:
// el.textContent = decodeHtml(userInput); // ✅ shown as literal text
// ---------------------------------------------------------------
// Node.js (no DOM) — use a tested library such as he:
// import { decode } from 'he';
// decode('<div> & ©'); // → '<div> & ©' Ключевые возможности
Декодирует именованные, десятичные и hex-ссылки
Раскрывает полный набор именованных сущностей HTML5 (<, ©, —), десятичные числовые ссылки (<) и шестнадцатеричные ссылки (<) в любой комбинации, ровно как это сделал бы браузер — так что обращает всё, что произвёл кодировщик.
Обрабатывает эмодзи и символы астральных плоскостей
Числовые ссылки выше U+FFFF восстанавливаются в полную кодовую точку, поэтому 😀 декодируется в 😀, а не в сломанную суррогатную пару. Редкие иероглифы CJK и математические символы тоже декодируются точно.
Снисходительный разбор устаревших сущностей
Следует обратносовместимым правилам браузера для именованных сущностей без завершающей точки с запятой, поэтому устаревшая или неаккуратная разметка вроде © 2026 всё равно декодируется в © 2026 там, где строгий парсер оставил бы её сломанной.
Живое мгновенное декодирование
Вывод обновляется по мере ввода — без кнопки отправки, без задержек на обмен с сервером. Вставьте большой экранированный блок, и восстановленный текст появится сразу, готовый к копированию.
Встроенный быстрый справочник сущностей
Справочная таблица, сопоставляющая самые распространённые сущности — пять зарезервированных плюс ©, ®, ™, €, —, и другие — с их символами, расположена прямо на странице, так что вам не придётся искать сущность где-то ещё.
Переключение к кодировщику в один клик
«Сменить направление» сразу переходит к HTML-кодировщику сущностей, чтобы обратить операцию. Кодирование и декодирование — точные обратные операции, поэтому текст можно прогонять туда-обратно без потерь.
100% приватно, только в браузере
Всё декодирование происходит на вашем устройстве с помощью JavaScript — без сетевых запросов, без логирования, без хранения, что проверяется в DevTools → Network. Приватные фрагменты базы данных, содержимое писем и неопубликованные черновики никогда не покидают вкладку.
Доступно на 15 языках
Весь интерфейс — подписи, инструкции и подсказки — локализован на 15 языков, чтобы инструмент и его советы по безопасности были понятны, где бы ни работала ваша команда.
Разобранные примеры
Декодирование смеси именованных сущностей
<div> & ©
<div> & ©
Декодировщик раскрывает каждую именованную ссылку в символ, который она представляет: < становится <, > — >, & — &, а © — знаком авторского права ©. Это повседневный случай — взять строку, которая хранилась или передавалась в экранированной форме, и вернуть её в реальные символы, чтобы прочитать, отредактировать или повторно обработать разметку. Декодирование — точная обратная операция к кодированию, поэтому строка, прогнанная через кодировщик и обратно, приходит без изменений.
Декодирование десятичных и шестнадцатеричных числовых ссылок
<>
<>
Числовые ссылки на символы работают в обеих системах: < — десятичная форма кодовой точки 60, то есть <, а > — шестнадцатеричная форма кодовой точки 62, то есть >. Декодировщик обрабатывает десятичные (&#NNN;) и шестнадцатеричные (&#xHHH;) ссылки взаимозаменяемо, раскрывая каждую в её символ Unicode. Это важно, потому что кодировщики расходятся в том, какую форму выводить — одни предпочитают десятичную, другие шестнадцатеричную, — и надёжный декодировщик обязан принимать любую.
Декодирование устаревшей сущности без точки с запятой
© 2026
© 2026
Старый HTML допускал, чтобы небольшой набор именованных сущностей появлялся без завершающей точки с запятой, и браузеры по-прежнему раскрывают их ради обратной совместимости — © 2026 отображается как © 2026. Этот декодировщик следует тем же снисходительным правилам разбора, поэтому восстанавливает задуманный символ из неаккуратной или устаревшей разметки, которую строгий парсер оставил бы без изменений. Если вы выясняете, почему в тексте мелькает случайное ©, вот в чём дело.
Декодирование эмодзи из его hex-ссылки
😀
😀
Числовые ссылки не ограничены базовой многоязычной плоскостью — 😀 — это шестнадцатеричная ссылка на кодовую точку U+1F600, эмодзи улыбающегося лица 😀. Декодировщик корректно восстанавливает символы из астральных плоскостей (всё выше U+FFFF) из их числовых ссылок, поэтому эмодзи, редкие иероглифы CJK и математические символы декодируются точно, а не превращаются в сломанную суррогатную пару или глиф-заменитель.
Декодирование экранированной строки атрибута
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
Это полный обратный проход флагманского примера кодировщика. " раскрывается в двойную кавычку, ' (совместимый числовой апостроф) — в ', а сущности угловых скобок и амперсанда — в их буквальные символы, восстанавливая исходное Tom & Jerry's в точности. Поскольку декодировщик принимает именованные, десятичные и шестнадцатеричные ссылки в любой комбинации, он обращает всё, что произвёл кодировщик, независимо от использованного стиля сущностей.
Как пользоваться HTML-декодировщиком сущностей
- 1
Вставьте экранированную строку
Поместите текст, полный HTML-сущностей, в поле ввода. Декодированные символы обновляются в реальном времени по мере ввода — кнопки отправки нет, и ничего никуда не отправляется.
- 2
Прочитайте декодированный результат
Именованные, десятичные и шестнадцатеричные ссылки автоматически раскрываются в символы, которые они представляют, включая эмодзи и другие кодовые точки астральных плоскостей. Выбор формата не нужен — декодировщик определяет тип каждой ссылки.
- 3
Скопируйте декодированный текст
Нажмите «Копировать», чтобы поместить восстановленные символы в буфер обмена, готовые к вставке в редактор, базу данных или другой инструмент. «Очистить» сбрасывает обе панели для следующей строки.
- 4
Заново экранируйте перед повторным показом недоверенного текста
Если декодированный вывод будет отрисован обратно на веб-странице и хоть что-то из него пришло из недоверенного источника, сначала экранируйте его снова кодировщиком, чтобы не открыть заново дыру XSS.
- 5
Нужно вместо этого закодировать? Смените направление
Используйте «Сменить направление», чтобы переключиться на HTML-кодировщик сущностей, когда хотите превратить сырые символы в сущности.
Частые ошибки декодирования HTML
Отрисовали декодированный недоверенный ввод через innerHTML
Декодирование снимает экранирование, поэтому декодированный тег <script> снова является живой разметкой. Вставка его через innerHTML выполняет его — хрестоматийная дыра XSS. Заново экранируйте декодированный недоверенный текст или используйте textContent.
el.innerHTML = decode(userInput) → script runs (XSS)
el.textContent = decode(userInput) → shown as text
Декодировали лишь раз, когда текст был закодирован дважды
Дважды закодированный текст требует двух проходов декодирования. Декодирование < один раз даёт <, а не <. Декодируйте снова — и исправьте конвейер, чтобы он вообще не кодировал дважды.
&lt; decoded once → < (still an entity)
&lt; decoded twice → <
Перепутали декодирование HTML с URL или Base64
Сущности, процентное кодирование и base64 — разные схемы. HTML-декодировщик не превратит %20 в пробел и не декодирует base64-блоб. Используйте подходящий инструмент для каждого слоя кодирования.
HTML-decode "%3Cdiv%3E" → unchanged, still percent-encoded
URL-decode "%3Cdiv%3E" → <div>
Использовали регулярное выражение, пропускающее числовые или астральные ссылки
Самописное регулярное выражение для именованных сущностей молча пропускает <, > и эмодзи вроде 😀, оставляя их в выводе. Используйте парсер браузера или протестированную библиотеку, охватывающую все формы ссылок.
regex for &name; only → 😀 left undecoded
full decoder → 😀 becomes 😀
Вывод отобразился как кракозябры после декодирования
Декодирование é даёт реальный é, но если принимающая страница или файл не отдаётся как UTF-8, символ портится в мусор. Установите кодировку UTF-8 перед записью декодированного текста.
decoded é into a Latin-1 file → é mojibake
decoded é into a UTF-8 file → é
Предположили строгий разбор и пропустили устаревшие сущности
Строгий XML-парсер игнорирует сущности без точки с запятой вроде ©, оставляя их буквальными. Браузеры их раскрывают, поэтому точный декодировщик обязан тоже — иначе ваш вывод расходится с тем, что видят пользователи.
strict parse of "© 2026" → © 2026 literal
lenient parse of "© 2026" → © 2026
Кто пользуется этим инструментом
- Чтение разметки, хранимой в экранированной форме
- Достали HTML-фрагмент из базы данных, лога или JSON-поля, где он был сохранён как <div>…? Декодируйте его, чтобы увидеть и отредактировать реальную разметку, а не вглядываться в стену сущностей.
- Отладка дважды закодированного текста
- Видите < на живой странице там, где должно быть <? Вставьте сюда, чтобы подтвердить двойное кодирование, декодируйте дважды для восстановления оригинала и проследите дублирующее экранирование до его источника в вашем конвейере.
- Извлечение обычного текста из HTML-фрагментов
- Нужен человекочитаемый текст из экранированного тела письма или поля CMS? Декодируйте сущности, чтобы восстановить реальные символы, прежде чем индексировать, искать или показывать содержимое где-то ещё.
- Восстановление символов из спарсенных или экспортированных данных
- Экспорты и скраперы часто отдают содержимое с нетронутыми сущностями. Декодируйте &, é и им подобные обратно в символы, чтобы данные были чистыми перед попаданием в ваши системы.
- Проверка обратимости вывода кодировщика
- После экранирования строки кодировщиком декодируйте её здесь, чтобы убедиться, что получаете оригинал без изменений. Чистый круговой проход доказывает, что ваше экранирование корректно и обратимо.
- Разгадка загадочной сущности
- Застряли на том, что на самом деле означает ™ или …? Вставьте её и считайте декодированный символ или загляните во встроенную справочную таблицу — не нужно запоминать таблицы сущностей.
- Безопасное декодирование устаревшей разметки
- Работаете со старым HTML, где непоследовательно используются сущности без точки с запятой вроде © или  ? Снисходительный декодировщик восстанавливает задуманные символы так же, как настоящий браузер, поэтому ваша очистка совпадает с тем, что видят пользователи.
Как работает декодировщик
- Раскрывает все три формы ссылок
- Декодировщик сопоставляет именованные ссылки с полной таблицей именованных символов HTML5, разбирает десятичные ссылки (&#NNN;) как кодовые точки по основанию 10 и шестнадцатеричные ссылки (&#xHHH;) как кодовые точки по основанию 16. Каждая раскрывается в свой символ Unicode; три формы взаимозаменяемы на входе.
- Восстановление астральных плоскостей
- Числовые ссылки, чья кодовая точка превышает U+FFFF — большинство эмодзи и многие символы — преобразуются в правильную суррогатную пару, так что символ отрисовывается как единый глиф. 😀 становится 😀, а не двумя сломанными полусимволами.
- Снисходительная обработка устаревших сущностей
- Определённое подмножество именованных сущностей исторически появлялось без завершающей точки с запятой, и браузеры по-прежнему их раскрывают. Декодировщик повторяет это поведение — © 2026 даёт © 2026 — совпадая с отрисовкой настоящего браузера, а не строгого XML-парсера.
- Идемпотентен на обычном тексте
- Символы, не являющиеся частью распознанной ссылки, включая сырой текст не из ASCII, уже присутствующий во вводе, проходят нетронутыми. Декодирование строки без сущностей возвращает её без изменений, поэтому операцию безопасно запускать на смешанном содержимом.
- Декодированный вывод не экранирован
- Декодирование — обратная сторона защитного от XSS экранирования, поэтому результат снова является живой разметкой. Инструмент об этом сообщает, чтобы вы не вставляли декодированный недоверенный текст на страницу через innerHTML — заново экранируйте его в контексте назначения перед отрисовкой.
- Локально в браузере, ноль сети
- Декодирование выполняется синхронно в JavaScript в основном потоке; нет ни вызовов API, ни обмена с сервером, ни сохранения. Ввод никогда не покидает страницу, в чём можно убедиться, наблюдая пустую панель Network во время ввода.
Лучшие практики снятия экранирования HTML
- Никогда не отрисовывайте декодированный недоверенный текст напрямую
- Декодированный вывод — неэкранированная разметка. Если хоть что-то из него пришло от пользователя или внешнего источника, заново экранируйте его перед вставкой на страницу или присваивайте через textContent, а не innerHTML. Пропуск этого вновь открывает дыру межсайтового скриптинга, которую экранирование должно было закрыть.
- Декодируйте в порядке, обратном кодированию
- Значение может быть закодировано в HTML, затем в URL, затем в Base64. Снимайте слои в порядке, обратном применению — и используйте подходящий инструмент для каждого: этот для сущностей, URL-декодировщик для процентного кодирования, инструмент Base64 для base64.
- Декодируйте один раз, а не рефлекторно
- Если одно декодирование оставляет видимые сущности вроде <, ввод был закодирован дважды — декодируйте снова для восстановления оригинала, затем исправьте конвейер выше, чтобы текст экранировался ровно один раз. Не зацикливайтесь вслепую; поймите, откуда взялся лишний слой.
- Отдавайте результат как UTF-8
- Декодирование числовых ссылок даёт реальные символы Unicode — диакритику, символы, эмодзи. Убедитесь, что страница, файл или поле, принимающее декодированный текст, в UTF-8, иначе эти восстановленные символы отобразятся как кракозябры.
- Предпочитайте протестированную библиотеку в коде приложения
- Для разовых преобразований этот инструмент идеален; в продакшене декодируйте хорошо протестированной библиотекой (he в Node, собственный парсер браузера через отдельный textarea), а не самописным регулярным выражением, которое регулярно пропускает числовые ссылки, символы астральных плоскостей и устаревшие сущности.
Часто задаваемые вопросы
Отправляется ли мой текст на ваш сервер при декодировании?
Что значит декодировать или снять экранирование HTML?
Какие виды сущностей этот декодировщик может обработать?
Почему мой текст показывает < вместо
Будет ли декодированный вывод безопасно вставить обратно на страницу?
Корректно ли декодирование обрабатывает символы не из ASCII и эмодзи?
Как закодировать текст обратно в сущности?
Это то же самое, что URL-декодирование или Base64-декодирование?
Похожие инструменты
Все инструменты →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-кодировщик сущностей — экранирование HTML
Кодирование и форматирование
Кодируйте HTML-сущности и экранируйте спецсимволы (< > & " ') онлайн — бесплатно, без регистрации, 100% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.
Конвертер HTML в Markdown
Кодирование и форматирование
Конвертируйте HTML в чистый Markdown прямо в браузере — GFM-таблицы, списки задач и ссылки. Выбирайте ATX/Setext заголовки и inline или reference ссылки. Удобно для переноса веб-контента и подачи в LLM. 100% приватно.