DevToolPal
UK

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

Екрануйте текст у HTML-сутності на кшталт < і é або декодуйте сутності назад у звичайний текст.

Працює локально, нічого не завантажується на сервер

Параметри

Режим

Вхідні дані

0 симв. · 0 B

Результат

0 симв. · 0 B

Що робить інструмент

HTML-сутності — це коди, що позначають символи, наприклад &lt; для < і &eacute; для é. Цей інструмент екранує текст у сутності, щоб безпечно показати його на вебсторінці, і декодує сутності назад у звичайний текст — наприклад, коли ви копіюєте розмітку з CMS чи шаблону листа.

Під час кодування використовується повний список HTML5 із понад 2 000 іменованих посилань, а декодування розуміє іменовані, десяткові (&#169;) і шістнадцяткові (&#xA9;) посилання точно так, як браузер.

Як користуватися

  1. Вставте текст чи HTML у поле Вхідні дані, завантажте файл або натисніть Приклад.
  2. Виберіть Кодувати або Декодувати.
  3. Під час кодування виберіть, скільки символів кодувати:
    • Лише & < > ” ’: мінімум, потрібний, щоб вставити текст у HTML або атрибут.
    • Плюс не-ASCII, іменовані: також перетворює символи на кшталт é, © і — на іменовані сутності, а все, що не має назви, — на числові посилання.
    • Плюс не-ASCII, числові: те саме, але завжди числові (&#xe9;), що також є коректним XML.
    • Усе, що має назву: кодує навіть розділові знаки, як-от . і /, — корисно, коли система вирізає ці символи.
  4. Скопіюйте або збережіть результат. Зробити вхідними даними дає змогу знову його декодувати й перевірити перетворення туди й назад.

Приклад

<p>Café & "crème brûlée"</p>

після кодування лише спеціальних символів перетворюється на

&lt;p&gt;Café &amp; &quot;crème brûlée&quot;&lt;/p&gt;

а з іменованими сутностями для не-ASCII — на

&lt;p&gt;Caf&eacute; &amp; &quot;cr&egrave;me br&ucirc;l&eacute;e&quot;&lt;/p&gt;

Типові сценарії

Показати фрагмент коду в блозі так, щоб браузер його не відрендерив, вставити текст користувача в HTML-лист, виправити двічі екранований текст на кшталт &amp;amp; (декодуйте один раз) або зробити файл безпечним для системи, яка приймає лише ASCII.

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

› Які символи обов’язково екранувати в HTML?

У тексті екрануйте & і <. Усередині значень атрибутів також екрануйте лапку, якою обгорнуто значення. Екранування & < > " і ' всюди, як тут за замовчуванням, завжди безпечне.

› Що використовувати: іменовані чи числові сутності?

Обидва варіанти працюють у кожному сучасному браузері. Іменовані сутності на кшталт &eacute; легше читати; числові посилання на кшталт &#xe9; працюють також в XML і в старих парсерах, що знають лише кілька назв. На сторінці в UTF-8 символи поза ASCII зазвичай узагалі не потрібно кодувати.

› Чи декодуються сутності без крапки з комою?

Так. Декодер дотримується специфікації HTML, тож застарілі форми на кшталт &copy без крапки з комою декодуються так само, як у браузері. Невідомі назви, як-от &foo;, лишаються без змін.

› Чи достатньо екранування, щоб запобігти XSS?

Екранування — правильний захист для тексту всередині HTML-елементів і атрибутів у лапках. Воно не робить ненадійні дані безпечними всередині блоків script чи style, атрибутів обробників подій або URL — там потрібне кодування з урахуванням контексту.