Кодировщик и декодировщик HTML — бесплатно
Кодируйте специальные символы в HTML-сущности или декодируйте сущности обратно в обычный текст. Мгновенно, в браузере.
Справочник распространённых HTML-сущностей
Частые применения
- Кодирование содержимого для каналов RSSКодируйте содержимое HTML для описаний элементов канала RSS — требуется стандартом RSS 2.0.
- Санировка пользовательского ввода для вывода HTMLКодируйте пользовательские строки перед вставкой в HTML — предотвращает атаки внедрения XSS.
- Кодирование специальных символов для HTML-письмаКодируйте символы, такие как &, <, > и ©, как сущности HTML, чтобы они правильно отображались во всех почтовых клиентах.
- Кодирование содержимого пользователя для отображения в веб-версииПредотвратите атаки XSS, кодируя пользовательское содержимое перед его отображением на HTML-страницах.
- Кодирование содержимого для XMLКодируйте специальные символы для файлов XML, лент RSS, карт сайта и полезных нагрузок SOAP.
Как это работает
Кодирование и декодирование HTML здесь полностью работает в вашем браузере с использованием написанной вручную замены регулярных выражений и жёстко закодированной справочной таблицы именованных сущностей — без сторонней библиотеки кодирования, без обращения к серверу. Для декодирования нечастых именованных сущностей (например, á или “) инструмент делегирует собственному HTML-парсеру браузера в качестве бесплатного резервного варианта.
- 1Регулярное выражение сканирует символы для заменыПри кодировании одно из двух регулярных выражений, учитывающих Unicode, проходит по вашему вводу: целевой шаблон, охватывающий ~25 распространённых HTML-значимых и специальных символов, или более широкий шаблон, который улавливает каждую кодовую точку выше U+007F. Каждое совпадение перехватывается посимвольно.
- 2Справочная таблица или codePointAt() производит сущностьДля вывода именованной сущности совпавшие символы ищутся в жёстко закодированной таблице (например, & → &, © → ©). Для десятичного или шестнадцатеричного вывода String.codePointAt() получает кодовую точку Unicode и форматирует её как &#NNN; или &#xNNN; — суррогатные пары обрабатываются правильно, потому что регулярное выражение использует флаг Unicode 'u'.
- 3Однопроходное регулярное выражение декодирует сущности обратно в символыПри декодировании единый проход регулярного выражения определяет все токены сущностей (&, A, A и т.д.) и направляет каждый в правильный обработчик: шестнадцатеричный parseInt(база 16), десятичный Number(), именованный обратный поиск, или — для любой сущности, отсутствующей в жёстко закодированной таблице — элемент textarea, чей innerHTML браузер разбирает нативно, возвращая правильный символ из встроенной таблицы сущностей браузера.
- 4Результат появляется мгновенно; копирование в буфер обмена через API ClipboardВывод пересчитывается синхронно при каждом нажатии клавиши через React useMemo. Копирование использует navigator.clipboard.writeText() — современный асинхронный API Clipboard — с тихим перехватом для ограниченных контекстов.
Похожие инструменты
URL-кодер и декодер
Кодируйте и декодируйте URL-адреса и строки запроса. Поддерживает encodeURIComponent, decodeURIComponent и анализ строки запроса.
Кодировщик и декодировщик Base64
Кодируйте текст или файлы в Base64 или декодируйте строки Base64 обратно в обычный текст. Мгновенно, конфиденциально и бесплатно.
Шифр Цезаря и шифратор текста
Шифруйте и расшифровывайте текст с помощью шифра Цезаря, ROT13, Атбаша и шифра Виженера. Классические шифры замены — всё в браузере.