Kódování URL
Některé znaky se v URL (např. mezerách) nevyskytují, jiné mají v URL speciální významy. Musíme převést speciální znaky tak, aby odpovídaly syntaxi definované ve specifikaci W3 URI (RFC 3986). To znamená, že URL musí obsahovat pouze podmnožinu speciálního ASCII znaku: písmena a čísla, která známe, stejně jako některé rezervované znaky, které se používají jako řídicí znaky v URL.
Zpracování kódování URL v JavaScriptu
V JavaScriptu lze vestavěné funkce encodeURIComponent() a encodeURI() kódovat v URL, přičemž rezervované znaky v URL jsou nahrazeny znaky kódovanými v UTF-8.
Většina prohlížečů automaticky kóduje URL, například kóduje mezery na 20 %, ale vždy existují výjimky. Naštěstí prohlížeče poskytují vestavěné funkce kódování a dekódování adres: encodeURI, encodeURIComponent a decodeURI, decodeURIComponent. Otázkou je, jak tyto funkce používat a jaký je mezi nimi rozdíl.
encodeURI()
Kódování řetězce URL je snadné, stačí zavolat encodeURI a předat řetězec, který chcete zakódovat. Tato funkce vrací zakódovanou URL.
decodeURI()
Tato funkce dekóduje a volá funkci decodeURI, předá zakódovaný řetězec a poté vrátí dekódovaný normální řetězec.
encodeURIComponent()
Funkce encodeURIComponent by měla být použita k zakódování hodnot parametrů dotazovacího řetězce. Rozdíl mezi encodeURI a encodeURIComponent je v tom, že encodeURIComponent kóduje celý řetězec, zatímco encodeURI ignoruje protokolový prefix ('http://') i doménové jméno. encodeURIComponent je navržen tak, aby kódoval vše, zatímco encodeURI ignoruje část doménového jména v URL. Když tyKdyž chcete zakódovat hodnotu parametru v URL, vyberte funkci encodeURIComponent。
decodeURIComponent()
Funkce decodeURIComponent dekóduje zakódovaný řetězec funkce encodeURIComponent a obnoví jej do normálního obsahu.
Přezkoumání:
|