Перейти к содержимому
useToolz онлайн-инструменты

HTML Entities

Войдите или зарегистрируйтесь, чтобы сохранять инструменты в избранное

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

Кодирование HTML-сущностей для безопасной вставки текста в HTML-документы.

Заменяет специальные символы: < на &lt;, > на &gt;, & на &amp;, " на &quot;.

Предотвращает XSS-атаки и некорректное отображение HTML-кода на странице.

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

HTML-сущности (HTML entities) — это специальные последовательности символов для отображения символов, имеющих особое значение в HTML (<, >, &) или отсутствующих на клавиатуре. Кодирование необходимо для предотвращения XSS-атак и корректного отображения контента.

Основные HTML-сущности

СимволИменованнаяЧисловая (dec)Числовая (hex)
&&amp;&#38;&#x26;
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;
Пробел (неразрывный)&nbsp;&#160;&#xA0;
©&copy;&#169;&#xA9;
®&reg;&#174;&#xAE;
&euro;&#8364;&#x20AC;

Именованные vs числовые сущности

Именованные (&amp;, &nbsp;) — читаемые, запоминаемые. Поддерживаются только HTML-стандартом. Числовые десятичные (&#38;) — работают для любого Unicode-символа. Числовые шестнадцатеричные (&#x26;) — то же, но в hex-нотации. Все три варианта эквивалентны и поддерживаются всеми браузерами.

Предотвращение XSS-атак

XSS (Cross-Site Scripting) — внедрение вредоносного JS через пользовательский ввод. Кодирование HTML-сущностей предотвращает интерпретацию тегов браузером: строка <script>alert(1)</script> после кодирования отображается как текст, а не выполняется. Всегда кодируйте пользовательский ввод перед выводом в HTML.

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

Когда нужно кодировать HTML-сущности?
Всегда при выводе пользовательского контента в HTML. Особенно важно для атрибутов тегов, содержимого <script> и URL-параметров.

Нужно ли кодировать кириллицу?
В UTF-8 документах — нет. Браузеры корректно отображают кириллицу без кодирования. Кодирование кириллицы в числовые сущности делает код нечитаемым без пользы.

Чем &nbsp; отличается от обычного пробела?
Неразрывный пробел (&nbsp;) не позволяет браузеру переносить строку в этом месте и гарантирует отображение нескольких пробелов подряд (браузер схлопывает несколько обычных пробелов в один).

Для URL-кодирования используйте URL Encoder, а для работы с Base64 — Base64 кодер.

Увеличенное изображение