logo

Як закодувати та декодувати URL-адресу в JavaScript?

Кодування та декодування URL-адрес у JavaScript має важливе значення для веб-розробки, особливо під час виконання запитів GET із параметрами запиту. Цей процес гарантує, що спеціальні символи в URL-адресах правильно інтерпретуються сервером. Наприклад, пробіли перетворюються на %20 або + в URL-адресах. У цьому посібнику описано, як використовувати такі функції JavaScript, як encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() і unescape() для ефективного кодування та декодування URL-адрес.

приклад:



  • Відкрийте www.google.com і введіть пошуковий запит geeks для geeks.
  • Коли з’являться результати пошуку, спостерігайте за URL-адресою рядка браузера. URL-адреса веб-переглядача міститиме символ %20 або знак + замість пробілу.
  • URL-адреса відображатиметься так: https://www.google.com/search?q=geeks%20for%20geeks або https://www.google.com/search?q=geeks+for+geeks

Примітка : браузер автоматично перетворив пробіли на знаки + або %20.

Кодування URL: Кодування в Javascript може бути досягнуто за допомогою:

Зміст




1. Функція JavaScript encodeURI

The функція encodeURI(). використовується для кодування повного URI. Ця функція кодує спеціальні символи, за винятком символів (, / ?: @ & = + $ #).

Синтаксис:

encodeURI( complete_uri_string );>
Javascript
const url = 'https://www.google.com/search?q=geeks for geeks'; const encodedURL = encodeURI(url); console.log(encodedURL)>

Вихід
https://www.google.com/search?q=geeks%20for%20geeks>

2. Функція JavaScript encodeURIComponent().

The функція encodeURIComponent(). використовується для кодування деяких частин або компонентів URI. Ця функція кодує спеціальні символи. Крім того, він кодує такі символи: , / ? : @ & = + $ #



Синтаксис:

encodeURIComponent( uri_string_component );>
Javascript
const component = 'geeks for geeks'; const encodedComponent = encodeURIComponent(component); console.log(encodedComponent);>

Вихід
geeks%20for%20geeks>

3. Функція JavaScript escape().

Функція JavaScript escape(). приймає рядок як єдиний параметр і кодує рядок, який можна передати через комп’ютерну мережу, яка підтримує символи ASCII. Кодування — це процес перетворення звичайного тексту в зашифрований текст.

Синтаксис:

escape( string )>

Примітка: Функція escape() кодує лише спеціальні символи, ця функція застаріла.

Винятки: @ – + . /*_

приклади програм на python
Javascript
const url = 'https://www.google.com/search?q=geeks for geeks'; const encodedURL = encodeURI(url);// encoding using encodeURI console.log(encodedURL) console.log(' ' + escape(url)); //encoding using escape>

Вихід
https://www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks>

Декодування URL

Декодування в Javascript можна здійснити за допомогою

1. Функція JavaScript decodeURI().

The функція decodeURI(). використовується для декодування URI, створеного encodeURI() .

Синтаксис:

decodeURI( complete_encoded_uri_string )>

приклад : Цей приклад описує функція decodeURI(). з Javascript .

Javascript
const url = 'https://www.google.com/search?q=geeks%20for%20geeks'; const decodedURL = decodeURI(url); console.log(decodedURL)>

Вихід
https://www.google.com/search?q=geeks for geeks>

2. Функція JavaScript decodeURIComponent().

The функція decodeURIComponent(). використовується для декодування деяких частин або компонентів URI, створених за допомогою encodeURIComponent().

Синтаксис:

decodeURIComponent( encoded_uri_string_component )>

приклад : Цей приклад описує decodeURIComponent() Javascript.

Javascript
const component = 'geeks%20for%20geeks' const decodedComponent = decodeURIComponent(component); console.log(decodedComponent)>

Вихід
geeks for geeks>

3. Функція JavaScript unescape().

Ця функція приймає рядок як один параметр і використовує його для декодування цього рядка, закодованого функцією escape(). Шістнадцяткова послідовність у рядку замінюється символами, які вони представляють під час декодування через функція unescape().

Синтаксис:

unescape(string)>

Примітка: Ця функція декодує лише спеціальні символи, ця функція застаріла.

Винятки: @ – + . /*_

Javascript
const url = 'https://www.google.com/search?q=geeks for geeks'; const encodedURL = encodeURI(url); console.log(encodedURL) console.log(escape(url)); console.log(decodeURI(encodedURL)); console.log(unescape(encodedURL));>

Вихід
https://www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks https://www.google.com/search?q=geeks for geeks https://www.google.com/search?q=geeks for ...>

4. Модуль рядка запитів JavaScript

Модуль querystring надає утиліти для аналізу та форматування рядків запиту URL-адреси. Його можна використовувати для кодування та декодування компонентів URL.

Кодування URL:

Щоб закодувати URL-адресу, ми можемо використати функцію querystring.stringify(), щоб створити рядок запиту з об’єкта, а потім використати encodeURIComponent() для кодування отриманого рядка.

JavaScript
const querystring = require('querystring'); const urlParams = {  q: 'geeks for geeks',  page: 1,  sort: 'desc' }; const encodedURL = 'https://www.google.com/search?' + querystring.stringify(urlParams); console.log(encodedURL);>


Вихід:

https://www.google.com/search?q=geeks%20for%20geeks&page=1&sort=desc>

Декодування URL:

Щоб декодувати URL-адресу, ми можемо використати функцію querystring.parse(), щоб розібрати рядок запиту в об’єкт і отримати доступ до декодованих значень.

JavaScript
const decodedParams = querystring.parse('q=geeks%20for%20geeks&page=1&sort=desc'); console.log(decodedParams.q); // Output: geeks for geeks console.log(decodedParams.page); // Output: 1 console.log(decodedParams.sort); // Output: desc>


Різниця decodeURIComponent і decodeURI:

decodeURIComponent decodeURI
Визначення Функція decodeURIComponent() використовується для декодування деяких частин або компонентів URI, створених за допомогою encodeURIComponent().Декодування в Javascript можна виконати за допомогою функції decodeURI.
Синтаксис decodeURIComponent( encoded_uri_string_component )decodeURI( complete_encoded_uri_string )
Спеціальне кодування символів Він приймає рядок encodeURIComponent(url), щоб він міг декодувати ці символи.Він приймає рядок encodeURI(url), тому не може декодувати символи (, / ? : @ & = + $ #)
приклад

decodeURIComponent(%41) Повертає A

decodeURIComponent(%26): повертає &

decodeURI(%41): повертає A

decodeURI(%26): повертає %26

Кодування та декодування URL-адрес у JavaScript має вирішальне значення для безперебійної веб-розробки. Використовуючи такі функції, як encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() і unescape(), розробники можуть переконатися, що їхні URL-адреси правильно відформатовані та доступні для читання серверами. Ця навичка необхідна для обробки параметрів запиту в запитах GET і забезпечує зручну роботу користувача на вашому веб-сайті.