Блог
Русский

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

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

Работает в браузере · файлы никуда не загружаются

Что это

В HTML символы вроде < и & имеют особое значение, поэтому, чтобы показать их буквально, пишут сущности — &lt; и &amp;. Инструмент превращает текст в сущности и сущности обратно в символы.

Как пользоваться

  1. Выберите «Кодировать» или «Декодировать».
  2. При кодировании выберите, что кодировать: только пять обязательных символов или все не-ASCII символы числовыми ссылками.
  3. Вставьте текст — результат появится сразу.
  4. Скопируйте результат или нажмите «Перенести результат во ввод», чтобы проверить обратное преобразование.

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

  • Режим пяти обязательных символов: & → &amp;, < → &lt;, > → &gt;, " → &quot;, ' → &#39;.
  • Режим «Все не-ASCII»: те же пять плюс каждый символ с кодом 128 и выше в виде десятичной ссылки (&#233; для é, &#1103; для я). Эмодзи считается одним кодом, а не двумя половинами UTF-16.
  • Декодирование: именованные, десятичные (&#65;) и шестнадцатеричные (&#x41;) ссылки раскрываются за один проход, поэтому &amp;lt; становится &lt; и дальше не раскрывается.
  • Именованные ссылки берутся из встроенной таблицы примерно на пятьдесят имён (amp, lt, gt, quot, apos, nbsp, copy, euro, hellip и другие). Имена вне таблицы остаются как есть.
  • Числовые ссылки на 0, на диапазон суррогатов или за пределом Unicode превращаются в символ замены U+FFFD, как требует стандарт HTML.

Примеры

Ввод Режим Результат
<a href="x"> Пять обязательных &lt;a href=&quot;x&quot;&gt;
é© Все не-ASCII &#233;&#169;
👍 Все не-ASCII &#128077;
&copy; &#x1F44D; Декодирование © 👍

Частые вопросы

Зачем кодировать текст в HTML-сущности?

Если вставить текст на страницу как есть, символы вроде < воспринимаются как разметка. Обязательные символы в виде сущностей отображаются буквально, и это помогает предотвратить внедрение скриптов. Но это не заменяет правильного экранирования вывода на сервере.

Какие пять символов обязательны?

Амперсанд, знаки «меньше» и «больше», двойная и одинарная кавычки. Они превращаются в &amp; &lt; &gt; &quot; и &#39;.

Нужно ли кодировать кириллицу и другие не-ASCII символы?

Нет, если документ в UTF-8. Режим «Все не-ASCII» нужен, только когда текст попадает туда, где кодировка не определена, или в систему, принимающую только ASCII.

Почему некоторые сущности не декодируются?

В HTML определено больше двух тысяч именованных сущностей. Инструмент знает около пятидесяти распространённых имён и все числовые ссылки; незнакомые имена остаются без изменений.

Не нашли нужный инструмент?