Кодування / декодування HTML-сутностей
Екрануйте текст для HTML або перетворюйте сутності на кшталт & назад на символи
Про цей інструмент
Екрануйте текст для безпечного включення в HTML — & стає &, < стає < — або декодуйте насичений сутностями текст назад у читабельні символи, з підтримкою іменованих сутностей (→), десяткових (©) і шістнадцяткових (©) числових посилань.
Кодування має два рівні: п’ять ключових символів, що ламають структуру HTML (& < > " '), — цього достатньо для коректності, — або все нелатинське поза ASCII, що корисно, коли якийсь інструмент між вами й сторінкою псує UTF-8. Режим «лише числові» пропускає іменовані сутності заради максимальної сумісності зі суворими парсерами XML, які гарантують лише п’ять наперед визначених.
Декодер — та половина, якою користуються щодня: вставте зіскрібаний фрагмент чи відповідь API, повну ', і отримайте чистий текст. Невідомі назви сутностей проходять недоторканими, а не вгадуються.
Часті запитання
- Які символи обов’язково екранувати в HTML?
- У текстовому вмісті: & і <. У значеннях атрибутів: ще й лапка, що обмежує атрибут (" або '). Екранування > є звичаєм, але не є суворо обов’язковим. Усе інше може стояти буквально в документі UTF-8.
- Чи є кодування сутностей захистом від XSS?
- Екранування п’яти структурних символів — це ядро кодування виводу в контексті HTML, так, але тільки для текстового вмісту й значень атрибутів. URL, рядки JavaScript і CSS потребують власного кодування під свій контекст; саме лише екранування сутностей не робить довільну ін’єкцію там безпечною.
- Іменовані чи числові сутності — які виводити?
- Числові посилання (é) працюють у будь-якому парсері HTML та XML. Іменовані читабельніші, але XML наперед визначає лише п’ять, тож é ламає сувору лінію XML/XHTML. Коли сумніваєтеся — числові.
- Чому в моїх даних видно &#39; (подвійне кодування)?
- Два шари закодували по разу кожен: & з першого кодування було екрановано вдруге. Декодуйте тут двічі, щоб відновити текст, а тоді знайдіть і полагодьте шар, який кодувати не повинен.