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

Кодирование и декодирование HTML-сущностей: структурные символы и не-ASCII — в числовые ссылки, обратный разбор имён и чисел с позицией ошибки.

Результат можно передать дальше:Посмотреть как markdown

Результат

Пустой ввод: введите текст для кодирования или сущности для разбора.

-

Что кодируется и чем разбирается

«Кодировать» превращает в числовые ссылки пять структурных символов (& < > кавычки) и всё, что вне ASCII, — печатный ASCII остаётся собой. «Декодировать» и «Превью» разбирают именованные (&amp;, &nbsp; — базовые ~250 из HTML 4.01) и числовые (&#38;, &#x26;) ссылки; битая сущность подсвечивается с позицией. Превью показывает результат текстом, а не исполняет разметку.

Последние разборы

В истории — только режим и длины: введённый текст не сохраняется.

Готовые примеры

Найдено: 4 из 4

Что это и как пользоваться

Инструмент кодирует и декодирует HTML-сущности в трёх режимах: encode, decode и предпросмотр. Структурные символы (<, >, &, ") и не-ASCII-символы превращаются в числовые ссылки вида &#1040; или именованные вроде &amp;.

Кодирование выбирает форму записи само: структурные символы получают короткие имена (&amp;, &lt;, &gt;), остальные — числовые ссылки. Это компромисс между читаемостью и универсальностью: имя короче, но не всякий парсер его знает.

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

Раскрытие идёт за один проход: &amp;#38; превращается в текст &#38;, а не в амперсанд, поэтому двойное экранирование видно, а не схлопывается незаметно.

Именованные сущности короче и читаемее, числовые универсальнее: их понимает любой парсер, даже если таблицу имён он не знает.

Числовая запись работает независимо от кодировки страницы: &#1040; покажет «А» и в UTF-8, и в однобайтовой кодировке, где такого символа нет вовсе.

Когда пригодится

  • Экранировать пользовательский текст перед вставкой в разметку, чтобы тег отобразился, а не сработал.
  • Прочитать чужой HTML: раскодировать сущности обратно в буквы и символы.
  • Проверить числовую ссылку в предпросмотре, прежде чем вставлять её в шаблон.
  • Проверить, не двойное ли экранирование в шаблоне: увидеть &amp;amp; вместо &amp; и исправить источник.
  • Разобрать текст письма, где кириллица пришла числовыми ссылками, и вернуть его в читаемый вид.
  • Сравнить именованную и числовую запись одного символа и убедиться, что это один и тот же знак.

Чего инструмент не делает

  • Работа идёт с сущностями, а не с документом: дерево не строится, разметка не исполняется и не валидируется.
  • Декодирование не делает текст безопасным: проверка на вредоносный ввод остаётся задачей приложения.
  • Теги не удаляются и HTML не очищается от скриптов — для этого нужен отдельный санитайзер.
  • Ссылки за пределами Unicode остаются текстом: страница не подставляет вместо них символ-заглушку.
  • Очень большие документы обрабатываются целиком в памяти вкладки, поэтому файлы лучше прогонять частями.

Примеры

Вход
                    <div>привет</div>
                  
Выход
                    &lt;div&gt;привет&lt;/div&gt;
                  
Вход
                    &amp;&#1040;
                  
Выход
                    &А