Розробника

Кодер/декодер URL-адрес

Пробіли, символи та спеціальні знаки псують URL — процентне кодування вирішує цю проблему. Закодуйте будь-який URL для безпечної передачі або декодуйте його назад у зрозумілий текст миттєво.

Цей інструмент вам допоміг?

Що таке Кодер/декодер URL-адрес?

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

Коли використовувати цей калькулятор

  • Ви створюєте URL із параметрами запиту, що містять пробіли, символи або не-ASCII знаки
  • Вам потрібно декодувати процентно закодований URL, щоб прочитати його фактичний вміст
  • Ви налагоджуєте API, який відхиляє ваш URL через незакодовані спеціальні символи
  • Ви обробляєте URL, надіслані користувачами, які потрібно очистити перед використанням
  • Вам потрібно пакетно закодувати чи декодувати кілька сегментів URL одночасно
  • Ви створюєте перенаправлення або callback-URL, у яких параметри мають бути правильно закодовані

Кроки:

  1. Введіть або вставте текст/URL, який потрібно закодувати чи декодувати.
  2. Виберіть режим «Кодувати» або «Декодувати».
  3. Натисніть кнопку «Перетворити».
  4. Скопіюйте результат, щоб використати його у своєму застосунку.

Формула

Кодування: небезпечні символи → % + 2-значний шістнадцятковий код ➡ Декодування: %XX → вихідний символ

Випадки використання

  • Створення безпечних рядків запиту для URL
  • Обробка параметрів запитів API
  • Налагодження закодованих URL
  • Створення дружніх до URL слагів і шляхів

Ключові переваги

  • Миттєве кодування та декодування з результатами в реальному часі
  • Підтримує режим URL та режим компонентів для різних контекстів
  • Пакетний режим для кодування або декодування декількох рядків одночасно
  • Обробляє всі спеціальні символи включаючи Unicode та емодзі
  • 100% на основі браузера — дані не надсилаються на сервер
  • Візуальний підрахунок символів для перевірки того, що кодування не дублювало і не обрізало введення

Поради

  • Завжди кодуйте генеровані користувачем параметри URL перед включенням їх у URL
  • Використовуйте encodeURIComponent() в JavaScript для окремих значень параметрів запиту
  • Декодуйте URL перед відображенням користувачам для кращої читабельності
  • Обережність з подвійним кодуванням: якщо ви бачите %25 за яким слідують шістнадцяткові цифри, URL, ймовірно, був закодований двічі
  • Використовуйте режим компонента під час побудови рядків запиту та режим URL під час кодування цілих шляхів URL або повних URL

Поширені помилки

  • Подвійне кодування URL шляхом кодування вже закодованого URL, %20 перетворюється на %2520
  • Використання неправильного контексту кодування — режим URL та компонентів дають різний вивід
  • Забування що + представляє пробіл лише в даних application/x-www-form-urlencoded
  • Неправильна обробка не-ASCII символів — завжди переконайтеся в кодуванні UTF-8 перед процентним кодуванням

Ключові терміни

Відсоткове кодування: Стандартний механізм кодування символів у URL, замінює небезпечні символи на % за яким слідує двозначний шістнадцятковий ASCII-код
Рядок запиту: Частина URL після символу ?, містить пари ключ-значення розділені &
Зарезервовані символи: Символи такі як :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, = зі спеціальним синтаксичним значенням у URL згідно RFC 3986
Режим компонентів vs режим URL: Режим компонентів кодує більше символів і для окремих значень; режим URL зберігає структуру URL для повних шляхів

Пов'язані концепції

  • Процентне кодування: механізм заміни небезпечних символів знаком % і двозначним шістнадцятковим ASCII-кодом для безпечної передачі URL
  • Рядок запиту: частина URL після символа ?, що містить пари ключ-значення, розділені символами &
  • Зарезервовані символи: символи, як-от :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, =, що мають особливе значення в синтаксисі URL згідно з RFC 3986
  • Безпечні для URL символи: незарезервовані символи (літери, цифри, -, _, ., ~), які не потребують кодування в URL
  • encodeURIComponent проти encodeURI: функції JavaScript, де encodeURIComponent для окремих значень кодує все, крім літер, цифр і _*-.~, а encodeURI зберігає символи структури URL для повних URL

Приклад

Кодування "Hello World & Friends!" → "Hello%20World%20%26%20Friends%21". Декодування "search%3Fq%3Dhello+world" → "search?q=hello world".

Інтерпретація результатів

Кодувальник перетворює небезпечні символи URL (пробіли, &, ?, #, не-ASCII тощо) на формат процентного кодування, де кожен символ стає % і двозначним шістнадцятковим кодом. Декодувальник обертає цей процес, відновлюючи вихідний читабельний текст. Кількість символів допомагає переконатися, що кодування не продублювало та не обрізало ваш ввід несподівано. Режим компонента кодує ширший набір символів і призначений для кодування окремих значень параметрів запиту. Режим URL є суворішим щодо того, що кодується, і призначений для кодування повних шляхів URL або цілих URL. Використовуйте режим компонента під час побудови рядків запиту та режим URL під час кодування повного URL. Пакетний режим дає змогу кодувати чи декодувати кілька рядків одночасно, що зручно, коли у вас є список URL або параметрів для обробки. Кожен рядок розглядається як окреме введення, а всі результати відображаються разом для зручного копіювання.

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

Чому URL потрібно кодувати?
URL можуть містити лише певні символи ASCII. Такі символи, як пробіли, &, ?, # та не-ASCII символи, потрібно кодувати (процентно кодувати), щоб забезпечити безпечну передачу через інтернет.
Що таке процентне кодування?
Процентне кодування замінює небезпечні символи знаком % і двозначним шістнадцятковим кодом. Наприклад, пробіл перетворюється на %20, а & — на %26.
Чи однакове кодування URL і кодування HTML?
Ні. Кодування URL (процентне кодування) призначене для URL. Кодування HTML використовує сутності на зразок &amp; для & або &lt; для <. Вони виконують різні завдання у веброзробці.
Коли використовувати режим URL замість режиму компонента?
Використовуйте режим компонента під час кодування одного значення параметра запиту (наприклад, пошукового терміна). Використовуйте режим URL під час кодування повного шляху URL або коли потрібно, щоб увесь рядок був безпечним для URL. Режим компонента кодує більше символів, оскільки передбачає, що значення буде розміщене всередині структури URL.
Чому кодування 'Hello World' дає 'Hello%20World', а не 'Hello+World'?
У сегментах шляху URL пробіли кодуються як %20. Кодування пробілів знаком + використовується лише в даних application/x-www-form-urlencoded (відправлення HTML-форм). Сучасна найкраща практика — послідовно використовувати %20 в URL. Калькулятор використовує %20 для кодування URL.
Чи можна кодувати не-ASCII символи, як-от емодзі чи літери з діакритикою?
Так. Не-ASCII символи спочатку перетворюються на байти UTF-8, потім кожен байт процентно кодується. Наприклад, емодзі ☺ (U+1F600) перетворюється на %F0%9F%98%80. Літери з діакритикою, наприклад é (U+00E9), перетворюються на %C3%A9. Це стандартний підхід, визначений у RFC 3986.
У чому різниця між цим і кодуванням HTML-сутностей?
Кодування URL (процентне кодування) призначене для URL — воно перетворює символи на шістнадцяткові коди %XX. Кодування HTML-сутностей перетворює символи на іменовані або числові сутності, як-от &amp; для & або &#8364; для €. Вони слугують абсолютно різним цілям і не взаємозамінні.
Чому деякі URL працюють без кодування, навіть якщо містять спеціальні символи?
Сучасні браузери автоматично кодують URL під час переходу або відправлення форм. Однак, коли ви будуєте URL програмно (у коді, викликах API чи серверних перенаправленнях), кодувати потрібно вручну, бо сервер не зробить це за вас.
Чи є ризик подвійного кодування?
Так. Якщо закодувати URL, який уже був закодований, %20 перетвориться на %2520, що неправильно. Завжди перевіряйте, чи ваш ввід уже закодований, перед повторним кодуванням. Цей калькулятор показує декодоване виведення, щоб ви могли перевірити правильність результату.
Як працювати із закодованими URL у JavaScript?
Використовуйте decodeURIComponent() для декодування та encodeURIComponent() для кодування окремих значень. Для повних URL використовуйте decodeURI() та encodeURI(), які зберігають символи структури URL (/, ?, # тощо). Ніколи не використовуйте escape() або unescape() — вони застарілі та некоректно обробляють Unicode.

Відкрийте більше інструментів

Свіжі добірки з усієї нашої бібліотеки інструментів.