У цій статті
Що таке кодування URL?
Кодування URL (також відоме як percent-encoding) перетворює символи, які є небезпечними або зарезервованими в URL, у безпечний формат. Кожен небезпечний символ замінюється знаком % з наступним двозначним шістнадцятковим ASCII-кодом. Наприклад, пробіл стає %20, а амперсанд — %26.
URL може містити лише обмежений набір ASCII-символів. Символи поза цим набором — включно з пробілами, не-ASCII-літерами та спеціальними символами — мають бути закодовані у форматі percent-encoding для безпечної передачі в URL.
Як працює кодування URL
Кодувальник визначає символи, які не є безпечними в URL, і замінює їх відповідними percent-encoded еквівалентами.
- Визначення безпечних символів — літери, цифри та - _ . ~ залишаються без змін
- Обробка зарезервованих символів — ! * ' ( ) ; : @ & = + $ , / ? # [ ] кодуються в більшості контекстів
- Підтримка Unicode — не-ASCII-символи спочатку кодуються у форматі UTF-8, а потім кожен байт percent-кодується
Спробуйте безкоштовно — реєстрація не потрібна
Закодувати або декодувати URL →Коли використовувати кодування URL
Кодування URL необхідне щоразу, коли спеціальні символи з'являються в компонентах URL.
- Параметри запиту — кодуйте значення, що передаються як параметри рядка запиту, особливо пошукові терміни, введені користувачем
- API-запити — кодуйте сегменти шляху та параметри під час програмного формування URL для API
- Дані форм — кодуйте дані форми перед додаванням до URL у GET-запитах
Часті запитання
У чому різниця між encodeURI та encodeURIComponent у JavaScript?
encodeURI кодує повний URL і залишає символи / : # недоторканими, оскільки вони мають структурне значення в URL. encodeURIComponent кодує окремий компонент URL (наприклад, значення параметра запиту) і також percent-кодує ці структурні символи. Для кодування окремих значень параметрів завжди використовуйте encodeURIComponent.
Чому пробіл іноді відображається як + замість %20?
Формат application/x-www-form-urlencoded (що використовується під час надсилання HTML-форм) кодує пробіли як + замість %20. Це застаріла угода з ранніх веб-стандартів. У рядках запиту HTML-форм + означає пробіл; в інших контекстах URL використовується %20. Обидва варіанти є коректними, але контекст визначає, який із них застосовувати.
Чи потрібно кодувати весь URL чи лише його частини?
Кодуйте лише окремі компоненти (сегменти шляху, значення параметрів запиту). Кодування всього URL також закодує символи : / і ?, які визначають структуру URL, і зламає його. Правило: кодуйте значення, а не структурні символи, що формують URL.