logo

Cum se codifică și se decodează o adresă URL în JavaScript?

Codificarea și decodarea URL-urilor în JavaScript este esențială pentru dezvoltarea web, în ​​special atunci când se fac cereri GET cu parametri de interogare. Acest proces asigură că caracterele speciale din adresele URL sunt interpretate corect de către server. De exemplu, spațiile sunt convertite în %20 sau + în adrese URL. Acest ghid acoperă modul de utilizare a funcțiilor JavaScript precum encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() și unescape() pentru codificarea și decodarea URL-urilor eficiente.

Exemplu:

  • Deschideți www.google.com și scrieți o interogare de căutare geeks for geeks.
  • După ce apar rezultatele căutării, observați bara URL a browserului. Adresa URL a browserului va consta din semnul %20 sau + în loc de spațiu.
  • Adresa URL va fi afișată ca: https://www.google.com/search?q=geeks%20for%20geeks sau https://www.google.com/search?q=geeks+for+geeks

Notă : Browserul a convertit automat spațiile în semne + sau %20.



Codificarea unei adrese URL: Codificarea în Javascript poate fi realizată folosind:

Cuprins


1. JavaScript encodeURI Funcția

The funcția encodeURI(). este folosit pentru a codifica URI complet. Această funcție codifică caracterul special, cu excepția caracterelor (, / ?: @ & = + $ #).

Sintaxă:

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

Ieșire
https://www.google.com/search?q=geeks%20for%20geeks>

2. JavaScript encodeURIComponent() Funcția

The funcția encodeURIComponent(). este folosit pentru a codifica unele părți sau componente ale URI. Această funcție codifică caracterele speciale. În plus, codifică următoarele caractere: , / ? : @ & = + $ #

Sintaxă:

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

Ieșire
geeks%20for%20geeks>

3. Funcția JavaScript escape().

Funcția JavaScript escape(). ia un șir ca un singur parametru și codifică șirul care poate fi transmis prin rețeaua de computere care acceptă caractere ASCII. Codificarea este procesul de conversie a textului simplu în text cifrat.

Sintaxă:

escape( string )>

Notă: Funcția escape() codifică doar caracterele speciale, această funcție este depreciată.

Excepții: @ – + . /*_

dfs vs bfs
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>

Ieșire
https://www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks>

Decodificarea unui URL

Decodarea în Javascript poate fi realizată folosind

1. Funcția JavaScript decodeURI().

The funcția decodeURI(). este folosit pentru a decoda URI-ul generat de encodeURI() .

Sintaxă:

decodeURI( complete_encoded_uri_string )>

Exemplu : Acest exemplu descrie funcția decodeURI(). de Javascript .

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

Ieșire
https://www.google.com/search?q=geeks for geeks>

2. Funcția JavaScript decodeURIComponent().

The funcția decodeURIComponent(). este folosit pentru a decoda unele părți sau componente ale URI generate de encodeURIComponent().

Sintaxă:

decodeURIComponent( encoded_uri_string_component )>

Exemplu : Acest exemplu descrie decodeURIComponent() de Javascript.

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

Ieșire
geeks for geeks>

3. Funcția JavaScript unescape().

Această funcție ia un șir ca un singur parametru și îl folosește pentru a decoda acel șir codificat de funcția escape(). Secvența hexazecimală din șir este înlocuită cu caracterele pe care le reprezintă atunci când sunt decodate prin funcția unescape().

Sintaxă:

unescape(string)>

Notă: Această funcție decodifică doar caracterele speciale, această funcție este depreciată.

Excepții: @ – + . /*_

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));>

Ieșire
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. Modulul JavaScript querystring

Modulul querystring oferă utilitare pentru analizarea și formatarea șirurilor de interogări URL. Poate fi folosit pentru a codifica și decoda componente URL.

Codificarea unei adrese URL:

Pentru a codifica o adresă URL, putem folosi funcția querystring.stringify() pentru a crea un șir de interogare dintr-un obiect și apoi folosim encodeURIComponent() pentru a codifica șirul rezultat.

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);>


Ieșire:

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

Decodificarea unui URL:

Pentru a decoda o adresă URL, putem folosi funcția querystring.parse() pentru a analiza șirul de interogare într-un obiect și apoi pentru a accesa valorile decodificate.

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>


Diferența decodeURIComponent și decodeURI:

decodeURIComponent decodeURI
Definiție Funcția decodeURIComponent() este utilizată pentru a decoda unele părți sau componente ale URI generate de encodeURIComponent().Decodarea în Javascript poate fi realizată folosind funcția decodeURI.
Sintaxă decodeURIComponent( encoded_uri_string_component )decodeURI( complete_encoded_uri_string )
Codificare specială a caracterelor Este nevoie de șir encodeURIComponent(url) pentru a putea decoda aceste caractere.Este nevoie de șir encodeURI(url), astfel încât să nu poată decoda caractere (, / ? : @ & = + $ #)
Exemplu

decodeURIComponent(%41) Returnează A

decodeURIComponent(%26): returnează &

decodeURI(%41): returnează A

decodeURI(%26): returnează %26

Codificarea și decodarea URL-urilor în JavaScript este crucială pentru dezvoltarea web fără întreruperi. Folosind funcții precum encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() și unescape(), dezvoltatorii se pot asigura că adresele URL sunt formatate corect și pot fi citite de servere. Această abilitate este esențială pentru gestionarea parametrilor de interogare în cererile GET și asigură o experiență fluidă a utilizatorului pe site-ul dvs.