Розширені параметри
Конвертувати + в пробіли
Коли увімкнено, символи + будуть конвертовані в пробіли. Це корисно при декодуванні параметрів запиту.
Живий режим
Коли увімкнено, текст буде декодуватися автоматично під час введення.
Ці параметри допоможуть вам контролювати, як закодовані символи декодуються у ваших URL.
Що таке URL-декодування?
URL-декодування скасовує відсоткове кодування: воно читає %XX-екранування в закодованому URL і перетворює їх назад на символи, які вони позначають. Так ви відновлюєте зрозумілий рядок запиту, значення форми або сегмент шляху з URL, який браузер, API або рядок журналу передав вам у закодованому вигляді.
Як працює URL-декодування?
URL-декодування дотримується певного процесу для конвертації відсотково-закодованих послідовностей назад до їхніх оригінальних символів:
- Вхідний рядок сканується на наявність відсотково-закодованих екранувань (%XX)
- Кожен %XX конвертується з двох шістнадцяткових цифр назад до оригінального байтового значення
- Послідовні декодовані байти збираються назад у символи UTF-8 (багатобайтова послідовність стає одним символом)
- У контексті рядка запиту + декодується до пробілу (application/x-www-form-urlencoded), тоді як %2B залишається буквальним +
- Незарезервовані символи та вже декодований текст проходять без змін
Навіщо використовувати URL-декодер?
- Зрозумілий вивід: перетворюйте %20, %40 та %3D назад у пробіли, @ та =, щоб читати, що насправді написано в URL
- Міжнародний текст: відновлюйте акцентовані та не-ASCII символи з їхніх UTF-8 байтових послідовностей, щоб %C3%A9 знову читалося як é
- Налагодження: перевіряйте реальні значення всередині рядка запиту, редіректу OAuth або webhook-корисного навантаження перед їхнім використанням
- Стандартна відповідність: декодування за RFC 3986, тими самими правилами, що використовують браузери та сервери, тому ви бачите саме те, що бачать вони
Які поширені застосування URL-декодування?
URL-декодування є необхідним у багатьох сценаріях веб-розробки:
- Відправка форм: читання оригінальних значень полів з даних GET та POST у форматі application/x-www-form-urlencoded
- Розробка API: розпакування відсотково-закодованих параметрів шляху та запиту, що надходять до кінцевої точки API
- Файлові системи: відновлення шляхів до файлів та їхніх назв, що були відсотково-закодовані для передачі всередині URL
- Налагодження посилань: декодування спільних або зареєстрованих URL для перегляду спеціальних символів та міжнародного тексту, які вони містять
Як виглядає приклад URL-декодування?
Ось кілька поширених прикладів URL-декодування: %20 (або +) стає пробілом, %40 стає @, %23 стає #, %26 стає &, а %3D стає =. Послідовність UTF-8 на кшталт %C3%A9 стає міжнародним символом é.
Що таке відсоткове кодування?
Відсоткове кодування — це механізм, визначений RFC 3986 §2.1, для представлення символів, що є небезпечними або зарезервованими всередині URI. Правило є механічним: кожен байт, що не може з'явитися буквально, записується як знак відсотка, за яким слідують дві шістнадцяткові цифри — форма %XX — де XX — значення байта. Не-ASCII символи на кшталт é спочатку кодуються як їхня UTF-8 байтова послідовність, потім кожен байт кодується відсотками окремо.
Як насправді відбувається декодування %C3%A9 в é?
Візьмемо закодований рядок запиту ?q=caf%C3%A9&lang=fr. Декодування дає ?q=café&lang=fr. Ось покроковий розбір по байтах:
- Введення:
?q=caf%C3%A9&lang=fr - Результат:
?q=café&lang=fr
%C3→ байт0xC3(двійковий11000011) — провідний байт двобайтової UTF-8 послідовності.%A9→ байт0xA9(двійковий10101001) — байт продовження. Разом,C3 A9є UTF-8 кодуванням U+00E9, що єé.- Символи
?,=та&залишаються незміненими, оскільки вони є структурними — вони розмежовують запит та його пари ключ/значення. Буквальнийcafтакож передається без змін, оскільки малі ASCII-літери належать до незарезервованого набору.
У чому різниця між decodeURIComponent та decodeURI?
JavaScript надає два вбудованих декодери, і їхня плутанина є однією з найпоширеніших помилок обробки URL:
decodeURIComponent(str)декодує кожну відсотково-закодовану послідовність, включаючи зарезервовані символи на кшталт&,=,?,/та#. Використовуйте його на окремих значеннях рядка запиту або сегментах шляху — ніколи на цілому URL.decodeURI(str)навмисно консервативний: він пропускає зарезервовані символи. Якщо подати йому%26, він поверне буквальний рядок%26, а не&. Він призначений для цілих URI, де ви хочете, щоб структура збереглася при зворотному перетворенні.
Практичне правило: якщо рядок є частиною URL (окремий параметр, фрагмент, закодоване ім'я файлу), використовуйте decodeURIComponent. Цей інструмент поводиться як decodeURIComponent — кожна послідовність %XX у вашому введенні декодується, включаючи зарезервовані символи.
Декодування URL — це спосіб прочитати, що він насправді містить. Вставте закодований рядок вище, і кожна послідовність %XX перетвориться назад у свій символ прямо у вашому браузері, щоб ви могли налагодити параметр запиту, перевірити редірект OAuth або відновити акцентоване ім'я файлу без відправки чогось на сервер.