Перейти до основного вмісту
LibraTool logoLibraTool

Кодувальник та декодувальник HTML — безкоштовно

Кодуйте спеціальні символи в HTML-сутності або декодуйте сутності назад у звичайний текст. Миттєво у вашому браузері.

Працює офлайн після завантаження
Результат:
Приклади:
Простий текст / HTML
Закодований HTML
Результат з'явиться тут...
Довідник поширених HTML-сутностей
&&
<&lt;
>&gt;
"&quot;
'&#39;
·&nbsp;
©&copy;
®&reg;
™&trade;
€&euro;
—&mdash;
…&hellip;

Типові застосування

  • Кодування Вмісту для RSS-потоківКодуйте HTML-вміст для описів елементів RSS-потоку — вимагається стандартом RSS 2.0.
  • Дезинсектація Введення Користувача для Виведення HTMLКодуйте рядки, надані користувачем, перед їх вставленням в HTML — запобігайте атакам з ін'єкцією XSS.
  • Кодування Спеціальних Символів для Email HTMLКодуйте такі символи як &, <, > і © як HTML сутності, щоб вони правильно відтворювалися у всіх поштових клієнтах.
  • Кодування Контенту Користувача для Веб-відображенняЗапобігайте XSS атакам, кодуючи вміст, створений користувачами, перед відтворенням на HTML-сторінках.
  • Кодування Контенту для XMLКодуйте спеціальні символи для XML-файлів, RSS-потоків, карт сайтів і корисних навантажень SOAP.

Як це працює

Кодування й декодування HTML тут працює повністю у вашому браузері на власноруч написаних замінах регулярними виразами та вбудованій таблиці іменованих сутностей — без сторонніх бібліотек кодування й звернень до сервера. Для декодування рідкісних іменованих сутностей (як &aacute; чи &ldquo;) інструмент звертається до власного HTML-парсера браузера як до безкоштовного запасного варіанта.

  1. 1
    Регулярний вираз шукає символи для заміни
    Під час кодування по введенню проходить один із двох регулярних виразів з підтримкою Unicode: вузький шаблон для ~25 поширених значущих для HTML і спеціальних символів або ширший, що ловить кожну кодову точку вище U+007F. Кожен збіг обробляється посимвольно.
  2. 2
    Таблиця або codePointAt() дає сутність
    Для іменованих сутностей знайдені символи шукаються у вбудованій таблиці (наприклад, & → &amp;, © → &copy;). Для десяткового чи шістнадцяткового виводу String.codePointAt() отримує кодову точку Unicode й форматує її як &#NNN; або &#xNNN; — сурогатні пари обробляються правильно, бо регулярний вираз використовує прапорець Unicode 'u'.
  3. 3
    Один прохід регулярного виразу декодує сутності назад у символи
    Під час декодування один прохід регулярного виразу знаходить усі токени сутностей (&amp;, &#65;, &#x41; тощо) і передає кожен відповідному обробнику: шістнадцятковий parseInt(base 16), десятковий Number(), зворотний пошук іменованих або — для будь-якої сутності поза вбудованою таблицею — елемент textarea, чий innerHTML браузер розбирає нативно й повертає правильний символ зі своєї вбудованої таблиці сутностей.
  4. 4
    Результат з’являється миттєво; копіювання через Clipboard API
    Результат синхронно переобчислюється з кожним натисканням через useMemo у React. Копіювання використовує navigator.clipboard.writeText() — сучасний асинхронний Clipboard API — з тихою обробкою помилок в обмежених контекстах.

Схожі інструменти

Часті запитання