Kā kodēt un atšifrēt URL JavaScript?

Vietrāžu URL kodēšana un atkodēšana JavaScript ir būtiska tīmekļa izstrādei, īpaši, veicot GET pieprasījumus ar vaicājuma parametriem. Šis process nodrošina, ka serveris pareizi interpretē īpašās rakstzīmes URL. Piemēram, atstarpes vietrāžos URL tiek pārveidotas par %20 vai +. Šajā rokasgrāmatā ir aprakstīts, kā izmantot JavaScript funkcijas, piemēram, encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() un unescape() efektīvai URL kodēšanai un dekodēšanai.

Piemērs:

  • Atveriet vietni www.google.com un ierakstiet meklēšanas vaicājumu geeks for geeks.
  • Kad tiek parādīti meklēšanas rezultāti, ievērojiet pārlūkprogrammas URL joslu. Pārlūka URL atstarpes vietā būs %20 vai + zīme.
  • URL tiks parādīts šādi: https://www.google.com/search?q=geeks%20for%20geeks vai https://www.google.com/search?q=geeks+for+geeks

Piezīme : pārlūkprogramma automātiski pārveidoja atstarpes par + vai %20 zīmēm.

URL kodēšana: Kodēšanu Javascript var panākt, izmantojot:

Satura rādītājs


1. JavaScript encodeURI funkcija

The encodeURI() funkcija tiek izmantots pilnīga URI kodēšanai. Šī funkcija kodē īpašo rakstzīmi, izņemot (, / ?: @ & = + $ #) rakstzīmes.

Sintakse:

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

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

2. JavaScript encodeURIComponent() funkcija

The encodeURIComponent() funkcija tiek izmantots, lai kodētu dažas URI daļas vai komponentus. Šī funkcija kodē īpašās rakstzīmes. Turklāt tas kodē šādas rakstzīmes: , / ? : @ & = + $ #

Sintakse:

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

Izvade
geeks%20for%20geeks 

3. JavaScript escape() funkcija

JavaScript escape() funkcija izmanto virkni kā vienu parametru un kodē virkni, ko var pārsūtīt datortīklā, kas atbalsta ASCII rakstzīmes. Kodēšana ir vienkārša teksta pārvēršanas process šifrētā tekstā.

Sintakse:

escape( string ) 

Piezīme: Funkcija escape() kodē tikai īpašās rakstzīmes, šī funkcija ir novecojusi.

Izņēmumi: @ – + . /*_

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 

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

URL dekodēšana

Javascript dekodēšanu var panākt, izmantojot

1. JavaScript decodeURI() funkcija

The decodeURI() funkcija tiek izmantots, lai atšifrētu URI, ko ģenerē encodeURI() .

Sintakse:

decodeURI( complete_encoded_uri_string ) 

Piemērs : Šis piemērs apraksta decodeURI() funkcija no Javascript .

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

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

2. JavaScript decodeURIComponent() funkcija

The decodeURIComponent() funkcija tiek izmantots, lai atšifrētu dažas URI daļas vai komponentus, ko ģenerē encodeURIComponent().

Sintakse:

decodeURIComponent( encoded_uri_string_component ) 

Piemērs : Šis piemērs apraksta decodeURIComponent() no Javascript.

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

Izvade
geeks for geeks 

3. JavaScript unescape() funkcija

Šī funkcija izmanto virkni kā vienu parametru un izmanto to, lai atšifrētu šo virkni, ko kodē funkcija Escape(). Heksadecimālā secība virknē tiek aizstāta ar rakstzīmēm, kuras tās attēlo, dekodējot caur unescape() funkcija.

Sintakse:

unescape(string) 

Piezīme: Šī funkcija atkodē tikai īpašās rakstzīmes, šī funkcija ir novecojusi.

Izņēmumi: @ – + . /*_

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

Izvade
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 vaicājumu virknes modulis

Vaicājumu virknes modulis nodrošina utilītas URL vaicājumu virkņu parsēšanai un formatēšanai. To var izmantot, lai kodētu un atšifrētu URL komponentus.

URL kodēšana:

Lai kodētu URL, mēs varam izmantot funkciju querystring.stringify(), lai no objekta izveidotu vaicājuma virkni, un pēc tam izmantot encodeURIComponent(), lai kodētu iegūto virkni.

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


Izvade:

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

URL dekodēšana:

Lai atšifrētu URL, mēs varam izmantot funkciju querystring.parse(), lai parsētu vaicājuma virkni objektā un pēc tam piekļūtu dekodētajām vērtībām.

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 


Atšķirība decodeURIComponent un decodeURI:

decodeURIComponent decodeURI
Definīcija Funkciju decodeURIComponent() izmanto, lai atšifrētu dažas URI daļas vai komponentus, ko ģenerē encodeURIComponent(). Javascript dekodēšanu var panākt, izmantojot funkciju decodeURI.
Sintakse decodeURIComponent (kodēts_uri_string_komponents) decodeURI(pilnīgs_kodēts_uri_string)
Īpaša rakstzīmju kodēšana Tas aizņem encodeURIComponent(url) virkni, lai tā varētu atšifrēt šīs rakstzīmes. Tam nepieciešama encodeURI(url) virkne, tāpēc tā nevar atšifrēt rakstzīmes (, / ? : @ & = + $ #)
Piemērs

decodeURIComponent(%41) Tas atgriež A

decodeURIComponent(%26): tas atgriež &

decodeURI(%41): tas atgriež A

decodeURI(%26): Tas atgriež %26

URL kodēšana un dekodēšana JavaScript ir ļoti svarīga netraucētai tīmekļa izstrādei. Izmantojot tādas funkcijas kā encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() un unescape(), izstrādātāji var nodrošināt, ka viņu vietrāži URL ir pareizi formatēti un tos var lasīt serveri. Šī prasme ir būtiska, lai apstrādātu vaicājuma parametrus GET pieprasījumos un nodrošinātu vienmērīgu lietotāja pieredzi jūsu vietnē.