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

Кодуйте URL-адреси, декодуйте відсоткові послідовності та екрануйте HTML-сутності.

Інструмент
Дія
Область дії URL
Вхідні дані
Результат
Готово. Вставте текст та виберіть дію.

Ваш текст URL та HTML перетворюється безпосередньо у вашому браузері. Нічого не завантажується на BroBroGo.

Поширені запитання

Що вибрати: компонент URL чи повний URL?

Використовуйте варіант «Компонент» для значень запитів, частин шляху або значень форм. Використовуйте «Повний URL», якщо хочете залишити такі символи, як : / ? & = у читабельному вигляді.

Що саме змінює екранування HTML-сутностей?

Він перетворює такі символи, як <, >, &, лапки та символи поза таблицею ASCII, на сутності (entities), які можна безпечно вставляти в текст або атрибути HTML.

Чому декодування URL іноді завершується помилкою?

Відсоткові послідовності (percent escapes) повинні утворювати повні послідовності UTF-8. Неповну послідовність, наприклад %E0%A4%A, неможливо декодувати без припущень.

Принцип роботи та призначення кодування URL

Кодування URL (також відоме як відсоткове кодування або percent-encoding) є стандартизованим механізмом підготовки інформації для її передачі в уніфікованих ідентифікаторах ресурсів. Цей процес необхідний для того, щоб усі символи передавалися через інтернет без спотворень, оскільки протокол HTTP та структура URL вимагають використання лише обмеженого набору знаків ASCII.

Коли виникає потреба передати в адресному рядку символи національних алфавітів, пробіли або спеціальні службові знаки, їх необхідно замінити на безпечні послідовності. Процес кодування перетворює кожен небезпечний або не-ASCII символ на послідовність байтів у кодуванні UTF-8, де кожен байт представлений у вигляді знака відсотка %, за яким слідує двозначне шістнадцяткове число. Наприклад, звичайний пробіл перетворюється на %20, а символ амперсанда & — на %26. Декодування виконує зворотну дію, відновлюючи оригінальний текст із відсоткових послідовностей.

Різниця між кодуванням компонента та повного URL

При роботі з веб-адресами критично важливо розрізняти обробку окремого параметра та всієї адреси цілком. Інструмент дозволяє вибрати необхідну область дії для точного керування результатом:

  • Компонент URL (Компонент): Цей режим використовує функцію encodeURIComponent для кодування та decodeURIComponent для декодування. Він призначений для обробки окремих значень запитів, частин шляху або значень веб-форм. У цьому режимі кодуються абсолютно всі спеціальні символи, включаючи :, /, ?, &, =, щоб вони не порушували структуру URL, коли їх вставляють як значення параметра.
  • Повний URL (Повний URL): Цей режим базується на функціях encodeURI та decodeURI. Його застосовують тоді, коли потрібно закодувати адресу цілком, зберігши при цьому працездатність її структури. Такі символи, як :, /, ?, &, =, залишаються у читабельному вигляді та не перетворюються на відсоткові коди, що дозволяє браузеру коректно розпізнавати протокол, домен, шлях та роздільники параметрів запиту.

Екранування та розкодування HTML-сутностей

HTML-сутності використовуються для представлення символів, які мають особливе значення в розмітці документа або відсутні у стандартній таблиці ASCII. Екранування перетворює такі символи, як <, >, &, а також лапки та символи поза таблицею ASCII, на спеціальні кодові послідовності.

Цей процес робить текст безпечним для вставлення безпосередньо в тіло HTML-документа або в атрибути тегів. Наприклад, символ менше ніж < перетворюється на &lt;, символ більше ніж > — на &gt;, а амперсанд & — на &amp;. Якщо цього не зробити, браузер може інтерпретувати ці знаки як початок або кінець HTML-тегу, що призведе до порушення відображення сторінки. Зворотний процес (розкодування) повертає сутностям їхній початковий текстовий вигляд. При виборі режиму роботи з HTML-сутностями елементи керування областю дії URL автоматично приховуються, оскільки вони не стосуються розмітки HTML.

Практичне застосування у веб-розробці

Розробники, контент-редактори та фахівці технічної підтримки регулярно стикаються з необхідністю безпечного вбудовування текстових фрагментів у веб-середовище. Основні сфери застосування інструменту включають:

  • Формування та читання параметрів пошукових запитів, де значення містять пробіли та специфічні символи.
  • Підготовка текстових даних для передачі через форми за допомогою методів GET або POST.
  • Безпечне вставлення користувацького тексту або динамічних даних у шаблони HTML-сторінок.
  • Дешифрування та аналіз отриманих від користувачів або систем логування відсоткових послідовностей для з'ясування початкового змісту переданих даних.

Важливо розуміти різницю між кодуванням/екрануванням та безпековою санітаризацією (sanitization). Кодування та екранування лише переводять символи в альтернативне представлення для збереження цілісності даних при передачі або відображенні. Вони не замінюють собою повноцінне очищення даних від шкідливого коду (наприклад, для захисту від XSS-атак або SQL-ін'єкцій), яке має виконуватися на стороні сервера за допомогою спеціалізованих бібліотек санітаризації.

Правила обробки даних та обмеження

При роботі з інструментом діють чіткі технічні правила та обмеження, які забезпечують стабільність обробки:

  • Обмеження розміру: Максимальна довжина вхідного тексту становить 2 000 000 символів. Якщо ліміт перевищено, з'явиться повідомлення: «Вхідні дані занадто великі для цього інструменту. Обмеження становить {max} символів.».
  • Вимоги до UTF-8: При декодуванні URL усі відсоткові послідовності повинні утворювати валідні та повні послідовності UTF-8. Якщо послідовність виявиться розірваною або неповною (наприклад, %E0%A4%A), декодування завершиться помилкою: «Цей текст URL-адреси містить пошкоджену відсоткову послідовність.».
  • Контроль часу виконання: Якщо процес конвертації триває занадто довго, система зупинить його з помилкою: «Перетворення триває занадто довго. Спробуйте менший обсяг даних.».
  • Загальні збої: У разі виникнення інших непередбачуваних помилок під час обробки виводиться повідомлення: «Не вдалося перетворити ці вхідні дані.».

Конфіденційність та локальна обробка

Ваш текст URL та HTML перетворюється безпосередньо у вашому браузері. Нічого не завантажується на BroBroGo.

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

Що вибрати: компонент URL чи повний URL?

Використовуйте варіант «Компонент» для значень запитів, частин шляху або значень форм. Використовуйте «Повний URL», якщо хочете залишити такі символи, як: /? & = у читабельному вигляді.

Що саме змінює екранування HTML-сутностей?

Він перетворює такі символи, як <, >, &, лапки та символи поза таблицею ASCII, на сутності (entities), які можна безпечно вставляти в текст або атрибути HTML.

Чому декодування URL іноді завершується помилкою?

Відсоткові послідовності (percent escapes) повинні утворювати повні послідовності UTF-8. Неповну послідовність, наприклад %E0%A4%A, неможливо декодувати без припущень.

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

Якщо ви спробуєте виконати дію з порожнім полем, інструмент повідомить: «Спочатку вставте вхідні дані.».