|
|
Julkaistu 16.4.2022 18.50.39
|
|
|
|

URL-koodaus
Jotkut merkit eivät voi näkyä URL-osoitteissa (esim. välilykköissä), toisilla on erityisiä merkityksiä URL-osoitteissa. Meidän täytyy muuntaa erikoismerkit vastaamaan W3:n URI-määrittelyssä määriteltyä syntaksia (RFC 3986). Tämä tarkoittaa, että URL-osoitteissa täytyy olla vain osa erityisestä ASCII-merkistä: kirjaimet ja numerot, joihin olemme tutuja, sekä joitakin varattuja merkkejä, joita käytetään ohjausmerkkinä URL-osoitteessa.
URL-koodauksen käsittely JavaScriptissä
JavaScriptissä sekä encodeURIComponent()- että encodeURI()-sisäänrakennetut funktiot voidaan koodata URL-muodossa, jolloin URL-osoitteen varatut merkit voidaan korvata niiden UTF-8-koodatuilla merkeillä.
Useimmat selaimet koodaavat URL-osoitteet automaattisesti, kuten välilyöntien koodaamisen %20:een, mutta poikkeuksia on aina. Onneksi selaimet tarjoavat sisäänrakennetut URL-koodaus- ja purkutoiminnot: encodeURI, encodeURIComponent ja decodeURI, decodeURIComponent. Kysymys on, miten näitä funktioita käytetään ja mikä on niiden ero.
encodeURI()
Merkkijonon URL-koodaus on helppoa, kutsu vain encodeURI ja syötä haluamasi merkkijono. Tämä funktio palauttaa koodatun URL-osoitteen.
decodeURI()
Tämä funktio purkaa ja kutsuu decodeURI-funktion, välittäen sisään koodatun merkkijonon, ja palauttaa puretun normaalimerkkijonon.
encodeURIComponent()
EncodeURIComponent-funktiota tulisi käyttää kyselymerkkijonon parametriarvojen koodaamiseen. Ero encodeURI:n ja encodeURIComponentin välillä on se, että encodeURIComponent koodaa koko merkkijonon, kun taas encodeURI sivuuttaa protokollan etuliitteen ('http://') sekä verkkotunnuksen. encodeURIComponent on suunniteltu koodaamaan kaiken, kun taas encodeURI sivuuttaa URL-osoitteen verkkotunnuksen osan. Kun sinäKun haluat koodata parametrin arvon URL-osoitteeseen, valitse encodeURIComponent-funktio。
decodeURIComponent()
DecodeURIComponent-funktio purkaa encodeURIComponent-funktion koodatun merkkijonon ja palauttaa sen normaaliin sisältöön.
Arvostelu:
|
Edellinen:SQL Server aikaväliprioriteetin valintaSeuraava:jQuery hide ei toimi, kaksi ratkaisua
|