Кодування URL
Деякі символи не можуть з'являтися в URL (наприклад, у пробілах), інші мають особливе значення в URL. Нам потрібно конвертувати спеціальні символи відповідно до синтаксису, визначеного в специфікації W3 URI (RFC 3986). Це означає, що URL повинні містити лише підмножину спеціального ASCII-символу: знайомі нам літери та цифри, а також деякі зарезервовані символи, які використовуються як контрольні символи в URL.
Обробка кодування URL у JavaScript
У JavaScript як вбудовані функції encodeURIComponent(), так і encodeURI() можуть кодуватися за URL, замінюючи зарезервовані символи в URL на їхні символи, закодовані UTF-8.
Більшість браузерів автоматично кодують URL-адреси, наприклад, кодують простори до 20%, але завжди є винятки. На щастя, браузери мають вбудовані функції кодування та декодування URL: encodeURI, encodeURIComponent і decodeURI, decodeURIComponent. Питання в тому, як використовувати ці функції і в чому різниця між ними.
encodeURI()
URL-кодування рядка легке, просто викликайте encodeURI і введіть рядок, який хочете закодувати. Ця функція повертає закодовану URL.
decodeURI()
Ця функція декодує і викликає функцію decodeURI, передаючи закодований рядок, а потім повертає декодований нормальний рядок.
encodeURIComponent()
Функція encodeURIComponent має використовуватися для кодування значень параметрів рядка запиту. Різниця між encodeURI та encodeURIComponent полягає в тому, що encodeURIComponent кодує весь рядок, тоді як encodeURI ігнорує протокольний префікс ('http://'), а також доменне ім'я. encodeURIComponent розроблений для кодування всього, тоді як encodeURI ігнорує частину доменного імені URL. Коли тиКоли ви хочете закодувати значення параметра в URL, оберіть функцію encodeURIComponent。
decodeURIComponent()
Функція decodeURIComponent декодує закодований рядок функції encodeURIComponent і відновлює його до нормального вмісту.
Огляд:
|