Kódovanie URL
Niektoré znaky sa nemôžu objaviť v URL (napr. medzerách), iné majú v URL špeciálne významy. Musíme konvertovať špeciálne znaky tak, aby zodpovedali syntaxi definovanej v špecifikácii W3 URI (RFC 3986). To znamená, že URL musia obsahovať iba podmnožinu špeciálneho ASCII znaku: písmená a čísla, ktoré poznáme, ako aj niektoré rezervované znaky, ktoré sa používajú ako riadiace znaky v URL.
Spracovanie kódovania URL v JavaScripte
V JavaScripte je možné zakódovať vstavané funkcie encodeURIComponent() aj encodeURI(), pričom nahradia vyhradené znaky v URL znakmi kódovanými v UTF-8.
Väčšina prehliadačov automaticky kóduje URL, napríklad kódovanie medzier na 20 %, ale vždy existujú výnimky. Našťastie prehliadače poskytujú zabudované funkcie kódovania a dekódovania URL: encodeURI, encodeURIComponent a decodeURI, decodeURIComponent. Otázkou je, ako tieto funkcie využiť a aký je medzi nimi rozdiel.
encodeURI()
URL kódovanie reťazca je jednoduché, stačí zavolať encodeURI a nahrať reťazec, ktorý chcete zakódovať. Táto funkcia vráti zakódovanú URL.
decodeURI()
Táto funkcia dekóduje a volá funkciu decodeURI, odovzdáva zakódovaný reťazec a potom vráti dekódovaný normálny reťazec.
encodeURIComponent()
Funkcia encodeURIComponent by mala byť použitá na zakódovanie hodnôt parametrov dotazového reťazca. Rozdiel medzi encodeURI a encodeURIComponent je v tom, že encodeURIComponent kóduje celý reťazec, zatiaľ čo encodeURI ignoruje protokolový prefix ('http://') aj doménové meno. encodeURIComponent je navrhnutý tak, aby kódoval všetko, zatiaľ čo encodeURI ignoruje časť doménového mena v URL. Keď tyKeď chcete zakódovať hodnotu parametra v URL, vyberte funkciu encodeURIComponent。
decodeURIComponent()
Funkcia decodeURIComponent dekóduje zakódovaný reťazec funkcie encodeURIComponent a obnoví ho do normálneho obsahu.
Revízia:
|