Kodiranje URL-jev
Nekateri znaki se ne morejo pojaviti v URL-jih (npr. presledki), drugi imajo poseben pomen v URL-jih. Posebne znake moramo pretvoriti tako, da ustrezajo sintaksi, definirani v specifikaciji W3 URI (RFC 3986). To pomeni, da morajo URL-ji vsebovati le podmnožico posebnega ASCII znaka: črke in številke, ki jih poznamo, ter nekaj rezerviranih znakov, ki se uporabljajo kot kontrolni znaki v URL-ju.
Obdelava kodiranja URL-jev v JavaScriptu
V JavaScriptu je mogoče tako vgrajeni funkciji encodeURIComponent() kot encodeURI() kodirati URL, pri čemer se rezervirani znaki v URL-ju nadomestijo z njihovimi UTF-8 kodiranimi znaki.
Večina brskalnikov samodejno kodira URL-je, na primer kodiranje presledkov na 20 %, vendar obstajajo vedno nekatere izjeme. Na srečo brskalniki omogočajo vgrajene funkcije kodiranja in dekodiranja URL-jev: encodeURI, encodeURIComponent in decodeURI, decodeURIComponent. Vprašanje je, kako uporabiti te funkcije in kakšna je razlika med njimi.
encodeURI()
URL kodiranje niza je enostavno, samo pokliči encodeURI in vnesi niz, ki ga želiš kodirati. Ta funkcija vrne kodirani URL.
decodeURI()
Ta funkcija dekodira in pokliče funkcijo decodeURI, posreduje kodirani niz in nato vrne dekodirani normalni niz.
encodeURIComponent()
Funkcijo encodeURIComponent je treba uporabiti za kodiranje vrednosti parametrov poizvedbenega niza. Razlika med encodeURI in encodeURIComponent je v tem, da encodeURIComponent kodira celoten niz, medtem ko encodeURI ignorira protokolno predpono ('http://') in domensko ime. encodeURIComponent je zasnovan tako, da kodira vse, medtem ko encodeURI ignorira del URL-ja, ki se nanaša na domensko ime. Ko tiKo želite kodirati vrednost parametra v URL, izberite funkcijo encodeURIComponent。
decodeURIComponent()
Funkcija decodeURIComponent bo dekodirala kodirani niz funkcije encodeURIComponent in ga povrnila v njegovo običajno vsebino.
Pregled:
|