Перейти к основному содержимому
LibraTool logoLibraTool

Кодировщик и декодировщик HTML — бесплатно

Кодируйте специальные символы в HTML-сущности или декодируйте сущности обратно в обычный текст. Мгновенно, в браузере.

Работает офлайн после загрузки
Вывод:
Примеры:
Простой текст / HTML
Кодированный HTML
Результат появится здесь...
Справочник распространённых HTML-сущностей
&&
<&lt;
>&gt;
"&quot;
'&#39;
·&nbsp;
©&copy;
®&reg;
™&trade;
€&euro;
—&mdash;
…&hellip;

Частые применения

  • Кодирование содержимого для каналов RSSКодируйте содержимое HTML для описаний элементов канала RSS — требуется стандартом RSS 2.0.
  • Санировка пользовательского ввода для вывода HTMLКодируйте пользовательские строки перед вставкой в HTML — предотвращает атаки внедрения XSS.
  • Кодирование специальных символов для HTML-письмаКодируйте символы, такие как &, <, > и ©, как сущности HTML, чтобы они правильно отображались во всех почтовых клиентах.
  • Кодирование содержимого пользователя для отображения в веб-версииПредотвратите атаки XSS, кодируя пользовательское содержимое перед его отображением на HTML-страницах.
  • Кодирование содержимого для XMLКодируйте специальные символы для файлов XML, лент RSS, карт сайта и полезных нагрузок SOAP.

Как это работает

Кодирование и декодирование HTML здесь полностью работает в вашем браузере с использованием написанной вручную замены регулярных выражений и жёстко закодированной справочной таблицы именованных сущностей — без сторонней библиотеки кодирования, без обращения к серверу. Для декодирования нечастых именованных сущностей (например, &aacute; или &ldquo;) инструмент делегирует собственному HTML-парсеру браузера в качестве бесплатного резервного варианта.

  1. 1
    Регулярное выражение сканирует символы для замены
    При кодировании одно из двух регулярных выражений, учитывающих Unicode, проходит по вашему вводу: целевой шаблон, охватывающий ~25 распространённых HTML-значимых и специальных символов, или более широкий шаблон, который улавливает каждую кодовую точку выше U+007F. Каждое совпадение перехватывается посимвольно.
  2. 2
    Справочная таблица или codePointAt() производит сущность
    Для вывода именованной сущности совпавшие символы ищутся в жёстко закодированной таблице (например, & → &amp;, © → &copy;). Для десятичного или шестнадцатеричного вывода String.codePointAt() получает кодовую точку Unicode и форматирует её как &#NNN; или &#xNNN; — суррогатные пары обрабатываются правильно, потому что регулярное выражение использует флаг Unicode 'u'.
  3. 3
    Однопроходное регулярное выражение декодирует сущности обратно в символы
    При декодировании единый проход регулярного выражения определяет все токены сущностей (&amp;, &#65;, &#x41; и т.д.) и направляет каждый в правильный обработчик: шестнадцатеричный parseInt(база 16), десятичный Number(), именованный обратный поиск, или — для любой сущности, отсутствующей в жёстко закодированной таблице — элемент textarea, чей innerHTML браузер разбирает нативно, возвращая правильный символ из встроенной таблицы сущностей браузера.
  4. 4
    Результат появляется мгновенно; копирование в буфер обмена через API Clipboard
    Вывод пересчитывается синхронно при каждом нажатии клавиши через React useMemo. Копирование использует navigator.clipboard.writeText() — современный асинхронный API Clipboard — с тихим перехватом для ограниченных контекстов.

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

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