fixmint
UK

Відсоткове кодування в URL: що насправді означають %20, + і %2F

Автор: · · оновлено 8 листопада 2026 р. · 5 хв читання

Відсоткове кодування записує символ, який URL не може передати безпечно, як знак відсотка, за яким іде його байтове значення в шістнадцятковій системі. Пробіл стає %20, амперсанд стає %26, а скісна риска стає %2F. Кодування захищає структуру посилання, адже такі символи, як & і =, розділяють частини рядка запиту.

Кодування й декодування URLВ URL багато кодів на кшталт %20Безкоштовно

Які символи можна лишити як є

Стандарт URI (RFC 3986), на якому побудовані URL, не потребує кодування для букв від A до Z і від a до z, цифр і чотирьох знаків - _ . ~. Інші символи в URL мають свою роль. Двокрапка відокремлює схему від решти, скісна риска розділяє частини шляху, знак питання починає рядок запиту, решітка починає фрагмент, а & і = ділять запит на назви та значення. Символ з роллю треба кодувати тоді, коли ви маєте на увазі його як дані, а не як структуру.

Тому той самий символ можна кодувати в одному місці й не можна в іншому. У значенні параметра запиту амперсанд має бути %26, інакше посилання розірветься не там. У шляху посилання це просто символ.

Літери не з англійського алфавіту

Літери поза базовим англійським алфавітом кодуються як їхні байти в UTF-8, і кожен байт записується як відсотковий код. Літера é у слові café має два байти C3 і A9, тож вона стає %C3%A9, а все слово стає caf%C3%A9.

Простий приклад робить правила конкретними. Текст a b&c=d/é, закодований як компонент, стає a%20b%26c%3Dd%2F%C3%A9. Кодується кожен символ, який не є безпечною літерою, цифрою чи знаком: пробіл, амперсанд, знак рівності, скісна риска і літера з діакритикою.

Компонент чи весь URL

Є два види кодування, і кожен з них має своє призначення. Кодування компонента трактує кожен зарезервований символ як дані. Використовуйте його для одного значення, наприклад пошукового запиту чи назви файлу в посиланні. Якщо закодувати «rock & roll» як пошуковий запит, вийде rock%20%26%20roll, тож амперсанд залишається всередині значення.

Кодування всього URL зберігає структуру. Якщо закодувати https://example.com/a b, вийде https://example.com/a%20b, а скісні риски і двокрапка лишаються без змін. Використовуйте його для повної адреси, яку треба зробити коректною, а не для значення всередині посилання.

Саме тому в інструменті «Кодування й декодування URL» є налаштування «Компонент» і «Повний URL». Декодування повного URL також зберігає екрановані структурні символи, як-от %26 і %3D, тож посилання працює і після декодування.

Плюси і дані форм

Веб-форми використовують іншу домовленість. Коли форма надсилається як дані форми, пробіл записується як +, а не як %20. Тоді справжній знак плюс записується як %2B. Тож фраза C++ tips стає C%2B%2B+tips у даних форми і C%2B%2B%20tips у звичайному кодуванні компонента.

Декодування має таку саму різницю. У рядку запиту + зазвичай означає пробіл. У шляху посилання + є знаком плюс. Інструмент читає + як пробіл, лише коли позначено Використовувати + для пробілів (дані форми), тому вимикайте цей пункт для шляхів і для значень, де плюс є справжнім.

Як читати довгий рядок запиту

Посилання часто несе свої налаштування після знака питання. Ось приклад:

https://shop.example/search?q=red%20shirt&size=M&tag=summer%2Bsale

Після декодування видно, що пошук ведеться за запитом red shirt, розмір M, а тег summer+sale. %2B лишається знаком плюс, бо був закодований. Вставте посилання в інструмент «Кодування й декодування URL», і він покаже кожну назву та значення після декодування, що полегшує читання довгого посилання. Якщо потрібна лише коротша адреса без налаштувань відстеження, спершу очистіть посилання.

Подвійне кодування

Найпоширеніша помилка полягає в тому, що значення закодовано двічі. Якщо закодувати текст %20 ще раз, вийде %2520, бо сам знак відсотка кодується як %25. Сторінка тоді шукає в значенні буквальний %20, і пошук або сторінка не збігаються. Декодуйте посилання один раз, перевірте результат і кодуйте значення лише тоді, коли це справді потрібно.

Пошкоджені екранування

Знак відсотка має супроводжуватися двома шістнадцятковими цифрами, а цифри для літер із діакритикою мають утворювати коректний UTF-8. Посилання, яке обірвалося, або випадковий знак відсотка в тексті може залишити пошкоджене екранування, наприклад %E0%A4%A. Інструмент декодує те, що може, залишає пошкоджені байти точно такими, як вони були записані, і повідомляє, скільки з них не вдалося декодувати. Він не зупиняється на першій помилці.

Особливі випадки

  • Пробіли в посиланні, набраному вручну. Адресний рядок браузера кодує пробіли за вас, але посилання, скопійоване в документ, може містити сирі пробіли. Закодуйте їх, перш ніж надсилати посилання далі.
  • Доменні імена не англійською. Вони використовують окрему систему, punycode, і кодування шляху чи запиту не змінює назву хоста.
  • Половинка емодзі. Пошкоджена копія може залишити одну половину сурогатної пари, яку не можна закодувати. Інструмент замінює її символом заміни і повідомляє про це.
  • Base64 у посиланнях. Значення Base64 у посиланні підпорядковується власним правилам, де замість + і / використовуються - і _. Див. Base64 пояснено.

Як це зробити у fixmint

  1. Вставте текст або посилання в поле Текст або URL.
  2. Оберіть Кодувати або Декодувати, потім Компонент для одного значення або Повний URL для всієї адреси.
  3. Увімкніть Використовувати + для пробілів (дані форми) для посилань, скопійованих із веб-форми.
  4. Для посилання прочитайте Параметри запиту, декодовані, щоб побачити кожну назву та значення.
  5. Скопіюйте результат.

Короткі відповіді

Що означає %20?

Пробіл. Його байтове значення в шістнадцятковій системі дорівнює 20.

Чому в моєму посиланні є + замість %20?

Посилання, імовірно, походить із форми, де + означає пробіл. Опція «Використовувати + для пробілів (дані форми)» декодує його.

Чому я бачу %2520 у посиланні?

Значення закодовано двічі. Знак відсотка з %20 було закодовано ще раз як %25. Декодуйте один раз, щоб отримати %20, і ще раз, щоб отримати пробіл.

Переклад з Англійський оригінал за допомогою ШІ.

Коментарі

    Коментарів поки немає. Будьте першим.

    Ваша оцінка (необов’язково)

    Ваша пошта ніколи не показується і не зберігається.

    Обкладинка: How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 сторінки про людські, економічні та стратегічні переваги, які залишаються рідкісними, коли ШІ може виконувати більшість когнітивної роботи.

    $3.84Придбати на GumroadАнглійською