URL-kodning
Nogle tegn kan ikke optræde i URL'er (f.eks. mellemrum), andre har særlige betydninger i URL'er. Vi skal konvertere specielle tegn for at overholde syntaksen defineret i W3 URI-specifikationen (RFC 3986). Det betyder, at URL'er kun må indeholde et delmængde af et særligt ASCII-tegn: de bogstaver og tal, vi kender, samt nogle reserverede tegn, der bruges som kontroltegn i URL'en.
URL-kodningsbehandling i JavaScript
I JavaScript kan både encodeURIComponent() og encodeURI() indbyggede funktioner kodes med URL'er, hvor de reserverede tegn i URL'en erstattes med deres UTF-8-kodede tegn.
De fleste browsere koder automatisk URL'er, såsom at kode rum til 20 %, men der er altid nogle undtagelser. Heldigvis tilbyder browsere indbyggede URL-kodnings- og afkodningsfunktioner: encodeURI, encodeURIComponent og decodeURI, decodeURIComponent. Spørgsmålet er, hvordan man bruger disse funktioner, og hvad forskellen er mellem dem.
encodeURI()
URL-kodning af en streng er nemt, bare kald encodeURI og send den streng ind, du vil kode. Denne funktion returnerer den kodede URL.
decodeURI()
Denne funktion dekoder og kalder decodeURI-funktionen, sender den kodede streng ind, og returnerer derefter den afkodede normalstreng.
encodeURIComponent()
Funktionen encodeURIComponent bør bruges til at kode parameterværdierne for forespørgselsstrengen. Forskellen mellem encodeURI og encodeURIComponent er, at encodeURIComponent koder hele strengen, mens encodeURI ignorerer protokolpræfikset ('http://') samt domænenavnet. encodeURIComponent er designet til at kode alt, mens encodeURI ignorerer domænenavnsdelen af URL'en. Når duNår du vil kode parameterværdien i URL'en, skal du vælge funktionen ENCODEURIComponent。
decodeURIComponent()
DecodeURIComponent-funktionen vil dekode den kodede streng i encodeURIComponent-funktionen og gendanne den til dens normale indhold.
Anmeldelse:
|