Инструменты HTML и код

HTML encode и decode онлайн — кодировщик HTML

Бесплатно Онлайн Без регистрации

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

Зачем экранировать HTML

HTML-символы <, >, &, " имеют специальное значение. Если вставить их в код напрямую — браузер интерпретирует их как HTML, а не как текст. Экранирование заменяет их на HTML-сущности: &lt;, &gt;, &amp;, &quot;.

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

  • Именованные: &amp;, &copy;, &mdash; — читаемые, но поддерживаются не везде
  • Числовые: &#38;, &#169;, &#8212; — универсальные, работают в любом HTML-парсере

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

Зачем нужно экранирование для безопасности?

XSS (Cross-Site Scripting) — самая распространённая уязвимость. Если выводить пользовательский ввод без экранирования, злоумышленник может вставить <script>…</script> и выполнить свой код в браузере других пользователей. Всегда экранируйте данные при выводе в HTML.

Чем HTML encode отличается от URL encode?

HTML encode заменяет спецсимволы HTML-сущностями (&amp;, &lt;). URL encode заменяет символы %HH-кодами (%26, %3C) — для безопасной передачи в URL. Применяйте нужный метод в зависимости от контекста: HTML-атрибут или URL-параметр.

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

html_entity_decode($str, ENT_QUOTES, «UTF-8») — декодирует именованные и числовые сущности. htmlspecialchars_decode() — только базовые 5 символов. strip_tags() — удаляет HTML-теги полностью.

Нужно ли экранировать HTML в JSON?

Нет — JSON использует другое экранирование: обратный слэш («). Но если JSON-строка будет вставлена в HTML-атрибут, её нужно сначала HTML-экранировать. В PHP: json_encode($data, JSON_HEX_TAG | JSON_HEX_AMP) экранирует оба контекста одновременно.