Come codificare e decodificare un URL in JavaScript?

La codifica e la decodifica degli URL in JavaScript è essenziale per lo sviluppo web, soprattutto quando si effettuano richieste GET con parametri di query. Questo processo garantisce che i caratteri speciali negli URL vengano interpretati correttamente dal server. Ad esempio, gli spazi vengono convertiti in %20 o + negli URL. Questa guida spiega come utilizzare le funzioni JavaScript come encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() e unescape() per una codifica e decodifica URL efficace.

Esempio:

  • Apri www.google.com e scrivi una query di ricerca geeks for geeks.
  • Una volta visualizzati i risultati della ricerca, osserva la barra degli URL del browser. L'URL del browser sarà composto da %20 o + al posto dello spazio.
  • L'URL verrà visualizzato come: https://www.google.com/search?q=geeks%20for%20geeks o https://www.google.com/search?q=geeks+for+geeks

Nota : Il browser ha convertito automaticamente gli spazi nei segni + o %20.

Codifica di un URL: La codifica in Javascript può essere ottenuta utilizzando:

Tabella dei contenuti


1. Funzione JavaScript codificaURI

IL codificaURI() funzione viene utilizzato per codificare l'URI completo. Questa funzione codifica il carattere speciale ad eccezione dei caratteri (, / ?: @ & = + $ #).

Sintassi:

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

Produzione
https://www.google.com/search?q=geeks%20for%20geeks 

2. Funzione JavaScript encodeURIComponent()

IL codificaURIComponent() funzione viene utilizzato per codificare alcune parti o componenti dell'URI. Questa funzione codifica i caratteri speciali. Inoltre, codifica i seguenti caratteri: , / ? : @ & = + $ #

Sintassi:

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

Produzione
geeks%20for%20geeks 

3. Funzione JavaScript escape()

Funzione JavaScript escape() accetta una stringa come singolo parametro e codifica la stringa che può essere trasmessa sulla rete di computer che supporta i caratteri ASCII. La codifica è il processo di conversione del testo semplice in testo cifrato.

Sintassi:

escape( string ) 

Nota: La funzione escape() codifica solo i caratteri speciali, questa funzione è deprecata.

Eccezioni: @ – + . /*_

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 

Produzione
https://www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks 

Decodificare un URL

La decodifica in Javascript può essere ottenuta utilizzando

1. Funzione JavaScript decodeURI()

IL funzione decodificaURI() viene utilizzato per decodificare l'URI generato da codificaURI() .

Sintassi:

decodeURI( complete_encoded_uri_string ) 

Esempio : Questo esempio descrive il funzione decodificaURI() Di Javascript .

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

Produzione
https://www.google.com/search?q=geeks for geeks 

2. Funzione JavaScript decodeURIComponent()

IL funzione decodificaURIComponent() viene utilizzato per decodificare alcune parti o componenti dell'URI generati da encodeURIComponent().

Sintassi:

decodeURIComponent( encoded_uri_string_component ) 

Esempio : Questo esempio descrive il decodificaURIComponent() di Javascript.

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

Produzione
geeks for geeks 

3. Funzione JavaScript unescape()

Questa funzione accetta una stringa come singolo parametro e la utilizza per decodificare la stringa codificata dalla funzione escape(). La sequenza esadecimale nella stringa viene sostituita dai caratteri che rappresentano quando decodificati tramite funzione unescape().

Sintassi:

unescape(string) 

Nota: Questa funzione decodifica solo i caratteri speciali, questa funzione è deprecata.

Eccezioni: @ – + . /*_

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

Produzione
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. Modulo stringa di query JavaScript

Il modulo querystring fornisce utilità per l'analisi e la formattazione delle stringhe di query URL. Può essere utilizzato per codificare e decodificare i componenti URL.

Codifica di un URL:

Per codificare un URL, possiamo utilizzare la funzione querystring.stringify() per creare una stringa di query da un oggetto e quindi utilizzare encodeURIComponent() per codificare la stringa risultante.

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


Produzione:

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

Decodificare un URL:

Per decodificare un URL, possiamo utilizzare la funzione querystring.parse() per analizzare la stringa di query in un oggetto e quindi accedere ai valori decodificati.

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 


Differenza decodificaURIComponente e decodeURI:

decodificaURIComponent decodificareURI
Definizione La funzione decodeURIComponent() viene utilizzata per decodificare alcune parti o componenti dell'URI generati da encodeURIComponent(). La decodifica in Javascript può essere ottenuta utilizzando la funzione decodeURI.
Sintassi decodificaURIComponent( codificato_uri_string_component ) decodificaURI( complete_encoded_uri_string )
Codifica dei caratteri speciali Richiede la stringa encodeURIComponent(url) in modo che possa decodificare questi caratteri. Richiede la stringa encodeURI(url) quindi non può decodificare i caratteri (, / ? : @ & = + $ #)
Esempio

decodeURIComponent(%41) Restituisce A

decodeURIComponent(%26): restituisce &

decodeURI(%41): restituisce A

decodeURI(%26): restituisce %26

La codifica e la decodifica degli URL in JavaScript sono cruciali per uno sviluppo web senza interruzioni. Utilizzando funzioni come encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() e unescape(), gli sviluppatori possono garantire che i loro URL siano formattati correttamente e leggibili dai server. Questa competenza è essenziale per gestire i parametri di query nelle richieste GET e garantisce un'esperienza utente fluida sul tuo sito web.