URL Encode Online

Кодування спеціальних символів у URL

Спробувати приклад

Звичайний текст / URL

Закодовано

Працює локально · Безпечно вставляти секрети
Закодований вивід...
Режим:
Також спробуйте:URL Decode Online

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

URL-кодування (також відоме як відсоткове кодування) — це механізм кодування інформації у Uniform Resource Identifier (URI) таким чином, щоб у результуючому рядку зустрічалися лише символи, дозволені стандартом RFC 3986. Будь-який символ, що не є зарезервованим (A–Z, a–z, 0–9, -, _, ., ~), замінюється знаком відсотка і двома шістнадцятковими цифрами, які представляють значення байту UTF-8 цього символу — наприклад, пробіл стає %20, а & стає %26.

Відсоткове кодування є обов'язковим, оскільки URL може містити лише обмежений набір символів ASCII. Якщо URL включає символи поза цим набором — пробіли, літери Unicode, символи на кшталт &, = або /, що використовуються як літеральні значення, а не структурні роздільники — ці символи необхідно закодувати, щоб парсер URL не інтерпретував їх хибно. Це особливо критично для значень рядка запиту, де незакодовані & або = зруйнують структуру параметрів.

Навіщо використовувати цей інструмент?

Миттєво дивіться, як текст кодується в обох режимах, з живим порівнянням поруч — без необхідності писати код для перевірки граничних випадків.

Живий перегляд
Вивід оновлюється під час введення. Спробуйте різні вхідні дані й одразу побачте, які символи кодуються, а які залишаються без змін.
🔀
Два режими
Перемикайтеся між encodeURIComponent (для значень) та encodeURI (для повних URL) без виходу зі сторінки.
🔒
Лише на стороні клієнта
Усе кодування виконується локально у вашому браузері. Конфіденційні параметри запиту та токени ніколи не потрапляють на сервер.
📋
Копіювання одним кліком
Скопіюйте закодований результат до буфера обміну однією кнопкою. Готово для вставки безпосередньо у код, термінал або адресний рядок браузера.

Як користуватися цим онлайн-кодувальником URL

Без реєстрації, без встановлення. Вставте або введіть текст у поле вводу — і результат з відсотковим кодуванням з'явиться миттєво. Усе працює у вашому браузері — дані ніколи не покидають ваш пристрій.

  1. 1
    Вставте текст або URL
    Введіть будь-який рядок — значення параметра запиту, повний URL, сегмент шляху або JSON-дані. Кодувальник обробляє його посимвольно відповідно до RFC 3986.
  2. 2
    Виберіть режим кодування
    Оберіть encodeURIComponent для кодування окремих значень параметрів (кодує все, крім незарезервованих символів). Оберіть encodeURI для кодування повного URL зі збереженням структурних символів, таких як ://?#&=.
  3. 3
    Скопіюйте закодований результат
    Рядок з відсотковим кодуванням з'являється миттєво. Натисніть Копіювати, щоб скопіювати результат і вставити його безпосередньо у виклик API, дію форми або файл конфігурації.
  4. 4
    Декодуйте назад при необхідності
    Допустили помилку або хочете перевірити результат? Перейдіть до інструменту URL Decode одним кліком, щоб скасувати кодування.

Які символи кодуються?

RFC 3986 ділить символи URL на дві категорії: незарезервовані символи (ніколи не кодуються) та зарезервовані символи (мають спеціальне значення — кодуються або зберігаються залежно від контексту). Таблиця нижче показує, як дві функції JavaScript обробляють ключові символи:

СимволЗначення в URLencodeURIComponentencodeURI
Spaceword separator%20%20
+plus sign%2B%2B
/path separator%2F/ (kept)
?query start%3F? (kept)
#fragment%23# (kept)
&param separator%26& (kept)
=param value%3D= (kept)
@auth separator%40@ (kept)
:scheme / port%3A: (kept)
%percent literal%25%25
~unreserved~ (kept)~ (kept)
-_.~unreserved setkept as-iskept as-is

encodeURIComponent vs encodeURI

JavaScript надає дві функції кодування з принципово різною поведінкою. Вибір хибної функції — одна з найпоширеніших помилок при роботі з URL:

encodeURIComponent()
Кодує все, окрім незарезервованого набору символів (A–Z a–z 0–9 - _ . ~). Це правильний вибір для кодування окремих значень параметрів запиту, сегментів шляху або будь-якого значення, що буде вбудоване в URL. Кодує /, ?, #, & та всі інші зарезервовані символи.
encodeURI()
Зберігає всю структуру URL, залишаючи зарезервовані символи (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) незакодованими. Використовуйте лише тоді, коли є повний URL зі структурою, яку потрібно зберегти, і необхідно закодувати лише символи поза ASCII або неприпустимі символи всередині нього.

Типові сценарії використання

Параметри рядка запиту
Кодуйте значення параметрів перед додаванням їх до URL: name=John%20Doe замість name=John Doe. Незакодовані пробіли та спеціальні символи зламають парсери URL і спричинять непередбачувані результати.
Формування API-запитів
REST API вимагають правильно закодованих параметрів запиту. Кодування значень за допомогою encodeURIComponent запобігає впровадженню зайвих параметрів через символи на кшталт & та = у складі значень.
Надсилання даних форми
HTML-форми надсилають дані у форматі application/x-www-form-urlencoded за замовчуванням. Розуміння відсоткового кодування допомагає налагоджувати те, що браузер надсилає і що сервер отримує.
Сегменти шляху зі спеціальними символами
Імена файлів або ідентифікатори, що містять пробіли, слеші або символи Unicode, необхідно відсотково кодувати при використанні як сегментів шляху URL: /files/my%20document.pdf.
OAuth та токени автентифікації
OAuth 1.0a та деякі протоколи автентифікації вимагають, щоб базовий рядок формувався з відсотково закодованих імен і значень параметрів відповідно до суворого алгоритму нормалізації.
Глибокі посилання та URL для поширення
При генерації URL для поширення, що вбудовують вміст користувача (пошукові запити, стан фільтрів, координати), кодуйте всі динамічні значення, щоб запобігти непрацюючим посиланням та XSS через маніпуляції з URL.

Приклади коду

Як виконати URL-кодування рядків у популярних мовах та середовищах:

JavaScript (browser / Node.js)
// Encode a query parameter value (most common case)
encodeURIComponent('hello world & more') // → "hello%20world%20%26%20more"

// Encode a complete URL (preserves ://?#& structure)
encodeURI('https://example.com/path?q=hello world') // → "https://example.com/path?q=hello%20world"

// Build a query string safely
const params = new URLSearchParams({ q: 'hello world', lang: 'en' })
const url = `https://example.com/search?${params}` // uses + for spaces
Python
from urllib.parse import quote, urlencode, quote_plus

# Encode a path segment or query value
quote('hello world & more')          # → 'hello%20world%20%26%20more'

# Encode for application/x-www-form-urlencoded (space → +)
quote_plus('hello world')            # → 'hello+world'

# Build a query string
urlencode({'q': 'hello world', 'lang': 'en'})  # → 'q=hello+world&lang=en'
Node.js (URL API)
const url = new URL('https://example.com/search')
url.searchParams.set('q', 'hello world & more')
url.searchParams.set('lang', 'en')
console.log(url.toString())
// → https://example.com/search?q=hello+world+%26+more&lang=en
CLI (curl / bash)
# curl automatically percent-encodes --data fields
curl -G "https://example.com/search" --data-urlencode "q=hello world & more"

# Manual encoding with Python one-liner
python3 -c "from urllib.parse import quote; print(quote('hello world'))"

URL Encode vs. альтернативи

Кілька інструментів можуть кодувати текст у відсотковому форматі, але вони різняться за керованістю, конфіденційністю та контекстом.

Цей інструмент
Працює у браузері, миттєво, конфіденційно. Підтримує режими encodeURIComponent та encodeURI. Жодні дані не надсилаються на будь-який сервер. Обробляє повний ввід Unicode.
Адресний рядок браузера
Браузери автоматично кодують URL при вставці, але лише частково — багато спеціальних символів зберігаються для зручності читання. Не підходить для кодування значень параметрів.
URLSearchParams / urllib
Правильний програмний підхід для побудови URL у JavaScript або Python. Використовуйте цей інструмент для швидкого одноразового кодування або для перевірки того, що видасть ваш код.

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

У чому різниця між %20 і + для пробілів?
Обидва позначають пробіл, але в різних контекстах. %20 — стандартне відсоткове представлення пробілу, дійсне будь-де в URL. Знак + позначає пробіл лише у форматі application/x-www-form-urlencoded (надсилання HTML-форм). У шляху URL або сирому значенні запиту + є буквальним знаком плюс, а не пробілом. Використовуйте %20 для максимальної сумісності.
Коли використовувати encodeURIComponent, а коли encodeURI?
encodeURIComponent — для окремих значень (параметри запиту, сегменти шляху, хеш-фрагменти). encodeURI — лише тоді, коли є повний URL і потрібно зберегти його структуру. Поширена помилка — застосування encodeURI до значення параметра запиту: при цьому & та = залишаться незакодованими і зруйнують рядок запиту.
Чи обробляє URL-кодування символи Unicode?
Так. Символи поза ASCII спочатку перетворюються на їхнє байтове представлення UTF-8, після чого кожен байт кодується відсотковим способом. Наприклад, знак євро € (U+20AC) кодується як %E2%82%AC — три байти UTF-8. Як encodeURIComponent, так і encodeURI правильно обробляють це у всіх сучасних браузерах.
Чи є подвійне кодування проблемою?
Так. Якщо закодувати вже закодований рядок, %20 перетвориться на %2520 (сам % кодується як %25). Завжди кодуйте вихідні значення, а не вже закодовані. Якщо маєте сумніви — спочатку декодуйте, потім закодуйте знову.
Які символи завжди безпечні в URL?
Незарезервовані символи, визначені RFC 3986, завжди безпечні й ніколи не потребують кодування: великі літери A–Z, малі літери a–z, цифри 0–9, дефіс (-), підкреслення (_), крапка (.) і тильда (~). Усе інше повинно бути закодовано відсотковим способом, коли використовується як значення, а не як структурний роздільник.
Чому деякі URL містять шістнадцяткові символи у верхньому регістрі (%2F), а інші — у нижньому (%2f)?
Обидва варіанти допустимі. RFC 3986 вказує, що відсотково закодовані послідовності нечутливі до регістру, тому %2F та %2f є еквівалентними. Однак та сама RFC рекомендує використовувати шістнадцяткові символи у верхньому регістрі для узгодженості. Більшість браузерів і бібліотек генерують верхній регістр.
Чи кодує цей інструмент весь URL або лише параметри?
І те, і інше. Використовуйте режим encodeURIComponent для кодування окремих значень параметрів запиту (найпоширеніший випадок). Використовуйте режим encodeURI для кодування повного URL зі збереженням структурних символів, таких як ://, ?, # та &.
Чи є обмеження на довжину при кодуванні?
Серверних обмежень немає — інструмент працює повністю у вашому браузері. Практичні обмеження залежать від пам'яті браузера. Для дуже великих вхідних даних або пакетної обробки використовуйте encodeURIComponent у скрипті.