URL kódolás
Egyes karakterek nem jelennek meg URL-ekben (pl. szóközökben), mások különleges jelentéssel bírnak az URL-ekben. Speciális karaktereket kell átalakítanunk, hogy megfeleljenek a W3 URI specifikációban (RFC 3986) meghatározott szintaxisnak. Ez azt jelenti, hogy az URL-eknek csak egy speciális ASCII karakter részhalmazát kell tartalmazniuk: azokat a betűket és számokat, amelyeket ismerünk, valamint néhány fenntartott karaktert, amelyeket az URL-ben vezérlő karakterként használnak.
URL kódolás feldolgozása JavaScriptben
JavaScriptben mind az encodeURIComponent(), mind az encodeURI() beépített funkciók URL-kódolhatók, így az URL-ben lévő fenntartott karaktereket UTF-8 kódolt karakterekkel helyettesítik.
A legtöbb böngésző automatikusan kódolja az URL-eket, például a szóközek kódolása %20-ra, de mindig vannak kivételek. Szerencsére a böngészők beépített URL-kódolási és dekódolási funkciókat biztosítanak: encodeURI, encodeURIComponent és decodeURI, decodeURIComponent. A kérdés az, hogyan kell ezeket a funkciókat használni, és mi a különbség közöttük.
encodeURI()
Egy string URL-kódolása egyszerű, csak hívd az encodeURI-t, és add be a kódolni kívánt stringet. Ez a függvény visszaadja a kódolt URL-t.
decodeURI()
Ez a függvény dekódolja és hívja a decodeURI függvényt, továbbítva a kódolt stringet, majd visszaadja a dekódolt normál stringet.
encodeURIComponent()
Az encodeURIComponent függvényt kell használni a lekérdezési lánc paraméterértékeinek kódolásához. Az encodeURI és az encodeURIComponent közötti különbség az, hogy az encodeURIComponent az egész láncsort kódolja, míg az encodeURI figyelmen kívül hagyja a protokoll előtagját ('http://') és a domainnevet is. az encodeURIComponent mindent úgy tervezett, hogy mindent kódoljon, míg az encodeURI figyelmen kívül hagyja az URL-nek a domain név részét. Amikor teAmikor az URL-ben a paraméterértéket kódolni szeretnéd, válaszd az encodeURIComponent függvényt。
decodeURIComponent()
A decodeURIComponent függvény dekódolja az encodeURIComponent függvény kódolt stringjét, és visszaállítja azt normál tartalmára.
Szemle:
|