Безкоштовний конвертер

Кодер URL-адрес / Дешифратор

Миттєво кодуйте та декодуйте URL-адреси та компоненти URI у вашому браузері. Безкоштовний, приватний і не потребує завантаження.

Або

Про цей інструмент

Кодування URL-адреси (офіційно відсоткове кодування, визначене в RFC 3986) перетворює символи, які мають особливе значення в URL-адресах — пробіли, косі риски, амперсанди, решітки — у безпечну форму за допомогою знаків відсотка, за якими слідують шістнадцяткові цифри. Пробіл стає %20 (або + у контекстах, закодованих у формі), амперсанд стає %26 тощо. Без цього кодування спеціальні символи сприйматимуться як синтаксис URL-адреси, а не як літеральні дані, порушуючи URL-адресу або спричиняючи ненавмисну ​​поведінку.

Існують два пов’язані, але різні кодування. У стандартному кодуванні компонента URL-адреси використовуються символи % для всього, що знаходиться за межами незарезервованого набору символів: A-Z, a-z, 0-9, дефіс, підкреслення, крапка, тильда. Варіант із кодуванням форми (application/x-www-form-urlencoded) додатково розглядає пробіли як знаки плюс і використовує інші правила для деяких інших символів. encodeURIComponent JavaScript використовує суворе кодування компонентів; encodeURI використовує більш дозволену форму, яка зберігає символи структури URL.

Цей інструмент пропонує як кодування, так і декодування. Режим кодування обертає кожен символ, який вимагає екранування, у форматі %HH; Режим декодування повертає перетворення. Обидва працюють повністю у вашому браузері за допомогою вбудованих URL-функцій JavaScript, тому дані нікуди не надсилаються.

Навіщо кодувати або декодувати URL-адреси

Кожного разу, коли дані включені в URL-адресу — параметри рядка запиту, сегменти шляху, що містять введені користувачем дані, цілі перенаправлення — потрібне правильне кодування. Помилка кодування призводить до того, що URL-адреси перериваються, коли з’являються спеціальні символи, пропускають межі параметрів у рядки запиту (перетворюючи &x=1 на окремий параметр) або блокуються веб-серверами як неправильно сформовані запити.

Декодування є зворотним: вилучення вихідних даних із закодованої URL-адреси. Адресні рядки веб-переглядача часто відображають URL-адреси в закодованій формі; декодування показує, що насправді було задумано. Логування, налагодження та аналіз безпеки – все це виграє від декодованих URL-адрес, які показують оригінальні параметри та шляхи.

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

Вставте рядок, виберіть напрямок.

  1. Виберіть кодування або декодування: Encode обертає небезпечні символи у форматі %HH. Декодування повертає %HH назад до літеральних символів.
  2. Додайте текст для введення: Вставте рядок для кодування або декодування. Для кодування це зазвичай літеральне значення з пробілами, спеціальними символами або вмістом, відмінним від ASCII. Для декодування це URL-адреса або компонент URL-адреси, що містить екрановані символи %HH.
  3. конвертувати: Інструмент застосовує encodeURIComponent або decodeURIComponent. Закодований вихід безпечно вбудовувати в URL-адресу; декодований вихід є вихідним літеральним значенням.
  4. Скопіюйте або завантажте: Використовуйте результат там, де вам це потрібно. Закодовані значення вписуються в URL-адреси; декодовані значення виявляють вихідні дані.

Загальні випадки використання

Технічні деталі

encodeURIComponent кодує кожен символ поза незарезервованим набором [A-Za-z0-9-_.~]. Пробіли стають %20, знаки плюса стають %2B, знаки рівності стають %3D і так далі. Символи поза ASCII спочатку кодуються в UTF-8, а потім кожен байт екранується %.

encodeURI є більш дозволеним і призначений для повних URL-адрес, а не для компонентів. Він не екранує /,?, &, =, # та деякі інші, оскільки ці символи мають синтаксичне значення URL-адреси. Для вбудовування даних користувача в URL, encodeURIComponent майже завжди є правильним вибором.

decodeURIComponent змінює %-екранування, перевіряючи, що кожен екранований код правильно сформований і що отримані байти формують дійсний UTF-8. Неправильний вхід видає помилку, а не створює сміття.

Найкращі практики

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

Які символи потребують кодування URL-адреси?
Зарезервовані символи (&, =, ?, #, /, :, @) і небезпечні символи (пробіли, <, >, {, }, |, ^, ~, [, ], `) мають бути закодовані. Алфавітно-цифрові символи та -_.~ безпечні та не потребують кодування.
Яка різниця між encodeURI та encodeURIComponent?
encodeURI кодує повну URL-адресу, але зберігає зарезервовані символи (://?#). encodeURIComponent кодує все, крім -_.!~*'() — використовуйте його для значень параметрів запиту. Цей інструмент пропонує обидва режими.
Як кодуються пробіли в URL-адресах?
Пробіли можуть бути закодовані як %20 (стандартне відсоткове кодування) або + (кодування форми). %20 є правильним для URL-шляхів, тоді як + використовується в рядках запиту з форм HTML. Цей інструмент використовує %20 за замовчуванням.
Чи можу я кодувати символи Unicode?
так Символи Юнікоду спочатку кодуються в байти UTF-8, потім кожен байт кодується у відсотках. Наприклад, «日» стає %E6%97%A5 (три байти UTF-8, кожен у відсотковому кодуванні).
Мені слід використовувати encodeURI чи encodeURIComponent?
Майже завжди encodeURIComponent. Використовуйте encodeURI, лише якщо у вас є повна URL-адреса та ви хочете зберегти її структуру — зазвичай рідко, оскільки ви все одно створюєте URL-адреси з компонентів.
Чи завантажуються мої дані на сервер?
Ні. Кодування та декодування URL-адрес відбувається повністю у вашому браузері.
Чи підтримує він емодзі Unicode?
так Emoji — це багатобайтові послідовності UTF-8; кодер виробляє ланцюжок %-екранованих байтів, які декодери правильно збирають у вихідний емодзі.
Що робити, якщо мій вхід містить рядки, що виглядають як %HH, які насправді не закодовані?
Кодування перетворює кожен % на %25, а потім повторно застосовує екранування для решти. Декодування суворого введення викидає помилки на неправильно сформовані вихідні сигнали; рядки, що виглядають неоднозначно, можуть бути декодовані неправильно.