logo

Ako zakódovať a dekódovať URL v JavaScripte?

Kódovanie a dekódovanie adries URL v jazyku JavaScript je nevyhnutné pre vývoj webu, najmä pri vytváraní požiadaviek GET s parametrami dopytu. Tento proces zabezpečuje, že server správne interpretuje špeciálne znaky v adresách URL. Napríklad medzery sa v adresách URL skonvertujú na %20 alebo +. Táto príručka popisuje, ako používať funkcie JavaScript, ako sú encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() a unescape() na efektívne kódovanie a dekódovanie adries URL.

Príklad:

  • Otvorte stránku www.google.com a napíšte vyhľadávací dopyt geeks for geeks.
  • Po zobrazení výsledkov vyhľadávania sledujte panel s adresou URL prehliadača. Adresa URL prehliadača sa bude skladať zo znaku %20 alebo + namiesto medzery.
  • Adresa URL sa zobrazí takto: https://www.google.com/search?q=geeks%20for%20geeks alebo https://www.google.com/search?q=geeks+for+geeks

Poznámka : Prehliadač automaticky skonvertoval medzery na znaky + alebo %20.



Kódovanie adresy URL: Kódovanie v Javascripte je možné dosiahnuť pomocou:

Obsah


1. Funkcia JavaScript encodeURI

The funkcia encodeURI(). sa používa na zakódovanie kompletného URI. Táto funkcia zakóduje špeciálny znak okrem znakov (, / ?: @ & = + $ #).

Syntax:

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

Výkon
https://www.google.com/search?q=geeks%20for%20geeks>

2. Funkcia JavaScript encodeURIComponent().

The funkcia encodeURIComponent(). sa používa na kódovanie niektorých častí alebo komponentov URI. Táto funkcia kóduje špeciálne znaky. Okrem toho kóduje nasledujúce znaky: , / ? : @ & = + $ #

Syntax:

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

Výkon
geeks%20for%20geeks>

3. Funkcia JavaScript escape().

Funkcia JavaScript escape(). berie reťazec ako jeden parameter a kóduje reťazec, ktorý je možné prenášať cez počítačovú sieť, ktorá podporuje znaky ASCII. Kódovanie je proces prevodu obyčajného textu na šifrovaný text.

Syntax:

escape( string )>

Poznámka: Funkcia escape() kóduje iba špeciálne znaky, táto funkcia je zastaraná.

Výnimky: @ – + . /*_

javafx tutoriál
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>

Výkon
https://www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks>

Dekódovanie adresy URL

Dekódovanie v Javascripte je možné dosiahnuť pomocou

1. Funkcia JavaScript decodeURI().

The funkciu decodeURI(). sa používa na dekódovanie URI generovaného pomocou encodeURI() .

Syntax:

decodeURI( complete_encoded_uri_string )>

Príklad : Tento príklad popisuje funkciu decodeURI(). z Javascript .

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

Výkon
https://www.google.com/search?q=geeks for geeks>

2. Funkcia JavaScript decodeURIComponent().

The funkciu decodeURIComponent(). sa používa na dekódovanie niektorých častí alebo komponentov URI generovaných pomocou encodeURIComponent().

Syntax:

decodeURIComponent( encoded_uri_string_component )>

Príklad : Tento príklad popisuje decodeURIComponent() jazyka Javascript.

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

Výkon
geeks for geeks>

3. Funkcia JavaScript unescape().

Táto funkcia berie reťazec ako jeden parameter a používa ho na dekódovanie tohto reťazca zakódovaného funkciou escape(). Hexadecimálna postupnosť v reťazci je nahradená znakmi, ktoré predstavujú pri dekódovaní cez funkciu unescape().

Syntax:

unescape(string)>

Poznámka: Táto funkcia dekóduje iba špeciálne znaky, táto funkcia je zastaraná.

Výnimky: @ – + . /*_

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

Výkon
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. Modul dotazovacieho reťazca JavaScriptu

Modul querystring poskytuje pomocné programy na analýzu a formátovanie reťazcov URL dotazov. Môže sa použiť na kódovanie a dekódovanie komponentov URL.

Kódovanie adresy URL:

Na zakódovanie adresy URL môžeme použiť funkciu querystring.stringify() na vytvorenie reťazca dotazu z objektu a potom použiť encodeURIComponent() na zakódovanie výsledného reťazca.

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


Výkon:

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

Dekódovanie adresy URL:

Na dekódovanie adresy URL môžeme použiť funkciu querystring.parse() na analýzu reťazca dotazu do objektu a potom získať prístup k dekódovaným hodnotá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>


Rozdiel medzi decodeURIComponent a decodeURI:

decodeURIComponent decodeURI
Definícia Funkcia decodeURIComponent() sa používa na dekódovanie niektorých častí alebo komponentov URI generovaných pomocou encodeURIComponent().Dekódovanie v Javascripte je možné dosiahnuť pomocou funkcie decodeURI.
Syntax decodeURIComponent( zakódovaný_súčasť_reťazca_uri )decodeURI( complete_encoded_uri_reťazec )
Špeciálne kódovanie znakov Vyžaduje reťazec encodeURIComponent(url), aby mohol dekódovať tieto znaky.Vyžaduje reťazec encodeURI(url), takže nedokáže dekódovať znaky (, / ? : @ & = + $ #)
Príklad

decodeURIComponent(%41) Vráti A

decodeURIComponent(%26): Vráti &

decodeURI(%41): Vráti A

decodeURI(%26): Vráti %26

Kódovanie a dekódovanie URL v JavaScripte je kľúčové pre bezproblémový vývoj webu. Pomocou funkcií, ako sú encodeURI(), encodeURIComponent(), escape(), decodeURI(), decodeURIComponent() a unescape(), môžu vývojári zabezpečiť, aby ich adresy URL boli správne naformátované a čitateľné servermi. Táto zručnosť je nevyhnutná na spracovanie parametrov dopytu v požiadavkách GET a zabezpečuje bezproblémovú používateľskú skúsenosť na vašom webe.