URL-кодувальник і декодер

Кодуйте текст для URL і рядків запиту, декодуйте закодовані URL і розбирайте будь-який URL на частини з декодованими параметрами запиту.

Працює в браузеріБез реєстраціїНічого не завантажується

Закодовано

Як користуватися: URL: кодування / декодування

  1. Виберіть Кодувати або Декодувати.
  2. Під час кодування виберіть Компонент для окремого значення параметра чи сегмента шляху, Повний URL, щоб зберегти структуру URL, або Дані форми для application/x-www-form-urlencoded.
  3. Вставте текст. Результат з'являється миттєво; про некоректні escape-послідовності повідомляється з їхньою позицією.
  4. Вставте повний URL у Парсер URL, щоб побачити хост, шлях, фрагмент і кожен декодований параметр запиту.

Що таке URL-кодування?

URL може містити лише обмежений набір символів ASCII (RFC 3986). Усе інше, зокрема пробіли, нелатинські літери й символи з особливим значенням на кшталт &, ? і #, записується як знак відсотка й дві шістнадцяткові цифри для кожного байта UTF-8. Пробіл стає %20, а é — %C3%A9.

encodeURIComponent чи encodeURI

ФункціяНе чіпаєДля чого
encodeURIComponentA-Z a-z 0-9 - _ . ~Окреме значення параметра, сегмент шляху чи ім'я параметра
encodeURIТакож : / ? # [ ] @ ! $ & ' ( ) * + , ; =Цілий URL, структура якого має зберегтися

Використовувати encodeURI для значення параметра — класична помилка: & усередині значення не екранується й розбиває параметр на два. Режим «Компонент» у цьому інструменті також екранує ! ' ( ) * для суворої відповідності RFC 3986.

%20 чи + для пробілів?

У шляхах пробіл має бути %20. У надсиланні HTML-форм (application/x-www-form-urlencoded) і багатьох рядках запиту пробіл записується як +. Під час декодування вмикайте Вважати + пробілом для даних форм і вимикайте, якщо важливий буквальний плюс, наприклад у jane+test@example.com.

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

Чому під час декодування з'являється «Некоректна escape-послідовність»?
Після % мають іти рівно дві шістнадцяткові цифри. Буквальний знак відсотка, як у «знижка 50%», мав бути закодований як %25. Помилка показує позицію неправильної послідовності.
Що означає «Некоректна послідовність байтів UTF-8»?
Байти закодовано не в UTF-8, часто тому, що текст створила застаріла система з Latin-1 (наприклад, %E9 для é замість %C3%A9), або рядок обрізано посеред символу.
Кодувати весь URL чи лише параметри?
Кодуйте кожне ім'я та значення параметра окремо в режимі компонента, а потім з'єднуйте їх через = і &. Якщо закодувати повний URL у режимі компонента, екранується й ://, і URL зламається.
Подвійне кодування — це проблема?
Так. Повторне кодування вже закодованого рядка перетворює %20 на %2520. Якщо ви бачите %25 і далі hex-цифри, значення, найімовірніше, закодовано двічі. Декодуйте його двічі, щоб отримати оригінал.

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