HTML-сущности

Работает офлайнНичего не загружаетсяБесплатно, без регистрации

Кодируйте текст для HTML или декодируйте сущности обратно в символы — пять ломающих разметку знаков, именованные наборы Latin-1 и символов, числовые ссылки вплоть до эмодзи. Декодирование выполняется ровно один раз — текст про HTML остаётся нетронутым.

Сущности, которые стоит узнавать

СущностьСимволГде встречается
&amp; &lt; &gt;& < >тройка, которую обязан писать каждый шаблонизатор
&quot; &apos;" 'внутри значений атрибутов
&nbsp;неразрывный пробелудержать «10 кг» на одной строке
&mdash; &ndash;— –типографские тире
&copy; &trade; &euro;© ™ €правовые и валютные знаки
&#x1F642;🙂всё безымянное, по кодовой точке

Всё работает в браузере; ничего из вставленного никуда не отправляется.

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

Какие символы трогает минимальное кодирование?

Ровно пять: & становится &amp;, < и > — &lt; и &gt;, а две кавычки — &quot; и &apos;. Это символы, способные вырваться из разметки или атрибута; всё остальное, включая буквы с диакритикой и эмодзи, совершенно законно в HTML-документе как есть, когда страница объявляет UTF-8.

Когда нужен полный режим?

Когда текст пройдёт через систему, портящую байты за пределами ASCII — старый почтовый конвейер, древний CMS, конфиг с неясной кодировкой. Полный режим записывает каждый не-ASCII символ именованной сущностью, где она есть (&eacute;, &mdash;), и hex-ссылкой (&#x259;), где нет — чистый ASCII, переживающий любой транспорт.

Почему декодер оставляет &amp;lt; как &lt;?

Потому что декодирование должно выполняться ровно один раз. &amp;lt; — это кодировка четырёх символов &lt;: так пишет человек, документирующий HTML. Декодер, работающий до стабилизации, превратил бы это в <, испортив любой документ о разметке. Если текст действительно закодирован дважды — запустите декодирование дважды, осознанно.

Почему AT&T; прошло без изменений?

Сущности с именем T не существует, поэтому &T; — не ссылка, а два символа прозы, случайно похожие на неё. Съесть их значило бы изобрести текст, которого не было. То же с одиночными амперсандами: a & b не требует декодирования, и инструмент не гадает.

Что за формы &#65; и &#x1F642;?

Числовые ссылки на символы: десятичная после &#, шестнадцатеричная после &#x — они называют кодовую точку Unicode напрямую и покрывают весь Unicode: &#x1F642; — это 🙂. Поэтому полное кодирование прибегает к ним для символов без имени. Ссылки на невозможные кодовые точки (за U+10FFFF, одиночные суррогаты) остаются нетронутыми, а не заменяются мусором.

Это то же самое, что URL-кодирование?

Нет — другой слой, другой синтаксис. Процентное кодирование URL (%20, %C3%A9) защищает символы внутри веб-адресов; HTML-сущности — внутри разметки. URL внутри HTML-атрибута может законно требовать обоих, в правильном порядке: сначала процентно кодируется URL, затем сущностями — атрибут. Вторую половину делает URL-кодировщик на этом сайте.

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