Формування значень query-string
Будь-який користувацький ввід, який ви додаєте у ?q=..., треба кодувати в режимі Component. Режим URI лишив би = та & сирими, що ламає URL, коли значення містить ці символи.
Закодуйте будь-який текст у безпечний для URL рядок з percent-encoding або декодуйте закодований URL назад у звичайний текст. Живий попередній перегляд, підтримка UTF-8, повністю у вашому браузері.
Component (encodeURIComponent) екранує все, що не є unreserved-символом, — найбезпечніший варіант для значень query-string, сегментів шляху чи окремого поля. URI (encodeURI) зберігає структурні символи URL (:/?#=&) — застосовуйте його до цілого URL. Form (application/x-www-form-urlencoded) — це Component плюс пробіли стають «+» — саме так роблять HTML-форми.
RFC 3986 визначає набір «unreserved»-символів, які не потребують кодування: A-Z a-z 0-9 - _. ~. Усе інше отримує percent-encoding. encodeURIComponent додатково кодує :/?#&=, які encodeURI лишає як є. Ця різниця важлива, коли ви кодуєте значення параметра проти цілого URL.
Перетягніть текстовий файл сюди або клацніть, щоб обрати
Будь-який текстовий файл UTF-8:.txt,.csv,.json,.url,.log
Швидкий, точний, працює лише в браузері — створений для розробників, копірайтерів і всіх, хто налагоджує URL.
Оберіть режим Component, Full URI або Form залежно від того, що ви кодуєте — значення query-string, цілий URL чи payload HTML-форми.
Кожне кодування й декодування виконується у вашому браузері за допомогою нативного JavaScript. Ваш текст і URL ніколи не залишають пристрій.
Результат оновлюється з кожним натисканням клавіші — без кнопки «Кодувати», без звернень до сервера.
Емодзі, ієрогліфи CJK, латиниця з діакритикою та кирилиця коректно проходять через encodeURIComponent і назад.
Під час декодування за бажанням сприймайте «+» як пробіл — конвенція, яку HTML-форми використовують у application/x-www-form-urlencoded.
Перетягніть файл.txt,.csv або.json, щоб закодувати чи декодувати його за один крок. Результат завантажується як чистий.txt.
Три нативні API браузера, три режими — і все це виконується на сторінці, яку ви читаєте.
На кожне натискання клавіші вхідний рядок передається у невелику JavaScript-функцію. Жодного debounce, жодних API-викликів, жодного fetch — функція виконується синхронно у вкладці вашого браузера.
Component викликає encodeURIComponent — екранує все, що не є A-Z a-z 0-9 - _. ~. URI викликає encodeURI — зберігає :/?#=&, щоб цілий URL лишався чинним. Form використовує encodeURIComponent і замінює пробіл на + згідно application/x-www-form-urlencoded.
Як encodeURIComponent, так і encodeURI внутрішньо конвертують рядок у байти UTF-8 перед percent-encoding кожного небезпечного байта. Тож ви отримуєте %E4%B8%AD для китайського 中 — саме те, що вимагає RFC 3986.
Результат записується як значення поля виводу лише для читання. Натисніть Copy, щоб помістити його в буфер обміну через navigator.clipboard.writeText, або Download, щоб зберегти як .txt через Blob URL — обидві операції лишаються у вашому браузері.
Реальні ситуації, коли правильний режим кодування рятує від багів.
Будь-який користувацький ввід, який ви додаєте у ?q=..., треба кодувати в режимі Component. Режим URI лишив би = та & сирими, що ламає URL, коли значення містить ці символи.
Деякі чати та PDF псують посилання, що містять сирі пробіли або не-ASCII символи. Прожене URL через режим URI, щоб він безпечно копіювався скрізь.
Коли ваше API відхиляє запит, вставте URL у режим Decode, щоб побачити, що насправді отримав сервер. Подвійно закодовані значення (де сам % закодовано як %25) одразу впадають в око.
Коли ви налагоджуєте POST-тіла у application/x-www-form-urlencoded, декодуйте з увімкненою опцією «+ як пробіл». Це конвенція, яку використовують браузери, і забути про неї — причина багу №1 «чому моє ім'я користувача показується з плюсами».
URL, які ви кодуєте, часто містять реальні email клієнтів, ідентифікатори або токени сесій — саме ті дані, які не варто вставляти в чужий серверний інструмент. iKit URL Encoder працює як JavaScript, уже завантажений у ваш браузер, тож ввід ніколи не залишає вкладку.
fetch, XHR чи beacon під час кодування або декодування.
Детальні посібники та порівняння інструментів з блогу iKit.
The 30-year-old form-encoding quirk explained — when + means space, when it means literal +, and how to fix the email-with-plus bug.
When to reach for Base64 versus URL percent-encoding, and what each encoding actually solves.
Pretty-print, validate, and structurally diff messy JSON in any browser.
Component (encodeURIComponent) екранує все, що не є unreserved-символом, — найбезпечніший варіант для значень query-string, сегментів шляху чи окремого поля. URI (encodeURI) зберігає структурні символи URL (:/?#=&) — застосовуйте його до цілого URL. Form (application/x-www-form-urlencoded) — це Component плюс пробіли стають «+» — саме так роблять HTML-форми.
RFC 3986 визначає набір «unreserved»-символів, які не потребують кодування: A-Z a-z 0-9 - _. ~. Усе інше отримує percent-encoding. encodeURIComponent додатково кодує :/?#&=, які encodeURI лишає як є. Ця різниця важлива, коли ви кодуєте значення параметра проти цілого URL.
Три типові причини: (1) оригінал був Form-кодований, тож «+» слід трактувати як пробіл — увімкніть відповідну опцію. (2) Подвійне кодування — ввід було закодовано двічі; декодуйте ще раз. (3) Некоректна percent-послідовність — самотній % без двох hex-цифр після нього. Перевірте повідомлення про помилку для точної позиції байта.
Так для режиму Component — ми викликаємо encodeURIComponent безпосередньо. Режим Form додає стандартні правки form-encoding (! ' * стають %21 %27 %28 %29 %2A) згідно RFC 3986 та WHATWG. Режим URI викликає encodeURI — те, що більшість мов мають на увазі під «percent-encode для URL».
Ні. Увесь інструмент — це JavaScript усередині цієї сторінки: кодування й декодування відбуваються у вашому браузері. Можете перевірити: відкрийте DevTools → Network і подивіться — жодних запитів під час операцій кодування чи декодування не надсилається.