raatools/

URL-koder / -dekoder

Kod eller dekod URLer og søkestrenger.

Hva er URL-koding?

URL-koding (også kalt prosentkoding) er mekanismen for å konvertere tegn som ikke er tillatt i en URL til et sikkert heksadesimalt format. Hvert usikkert tegn erstattes med et prosenttegn etterfulgt av to heksadesimale sifre som representerer dets ASCII-kode. For eksempel blir et mellomrom til %20, et &-tegn blir %26, og en hash blir %23.

URL-er kan bare inneholde et begrenset sett med tegn definert av RFC 3986: bokstaver (A–Z, a–z), sifre (0–9) og noen få spesialtegn (- _ . ~ ! * ' ( )). Alle andre tegn — inkludert mellomrom, ikke-ASCII-bokstaver og reserverte tegn som & = ? # — må prosentkodes før de inkluderes i en URL.

Når trenger du å kode en URL?

  • Sende spesialtegn i søkestrengparametere (f.eks. ?q=hello%20world).
  • Kode skjemadata sendt via HTTP POST med innholdstypen application/x-www-form-urlencoded.
  • Bygge API-forespørsels-URL-er programmatisk med brukerlevert inndata.
  • Bygge inn URL-er inne i andre URL-er (f.eks. omdirigeringsparametere).
  • Inkludere Unicode-tegn (bokstaver med aksenter, emoji, CJK-tegn) i URL-er.

Kode vs. dekode

Koding konverterer ren tekst til en URL-sikker streng ved å erstatte usikre tegn med prosentkodede ekvivalenter. Dekoding reverserer denne prosessen og konverterer prosentkodede sekvenser tilbake til sine opprinnelige tegn. Dette verktøyet lar deg veksle mellom kodings- og dekodingsretning med ett enkelt klikk.

Slik bruker du dette verktøyet

Lim inn eller skriv tekst i inndatafeltet. Velg kodings- eller dekodingsmodus. Utdataen oppdateres umiddelbart. Klikk bytteknappen for å reversere retningen ved å bruke gjeldende utdata som ny inndata. Dette er nyttig når du trenger å kode en streng og deretter verifisere resultatet ved å dekode det tilbake.

Tegn som kodes

Dette verktøyet bruker JavaScripts encodeURIComponent()-funksjon, som koder alle tegn unntatt: A–Z, a–z, 0–9 og de ureserverte tegnene - _ . ! ~ * ' ( ). Dette er den korrekte kodingen for søkeparameterverdier og skjemadata. Den lignende encodeURI()-funksjonen er mindre aggressiv og bevarer tegn som : / ? # som har betydning i URL-strukturen.

Vanlige URL-kodingsfeil

Den vanligste feilen er dobbeltkoding — å kode en streng som allerede er kodet, noe som gjør %20 til %2520. Dette bryter URL-er og forvirrer servere. Sjekk alltid om inndataen din allerede er kodet før du bruker koding. En annen feil er å bruke encodeURI() når encodeURIComponent() trengs, noe som lar & og = stå ukodet i parameterverdier.

Å ikke kode brukerinndata før det settes inn i URL-er er en sikkerhets­sårbarhet. Ukodet brukerinndata kan injisere ekstra søkeparametere, bryte URL-tolkning eller muliggjøre injeksjonsangrep. Kod alltid brukergitte verdier når du bygger URL-er programmatisk.

Praktiske tips

I webutvikling håndterer de fleste rammeverk URL-koding automatisk i skjemainnsendinger og HTTP-klientbiblioteker. Manuell koding trengs vanligvis ved dynamisk bygging av URL-er i JavaScript, når data sendes i URL-fragmenter, eller ved feilsøking av API-kall som inneholder spesialtegn.

Ofte stilte spørsmål

Hva er forskjellen mellom %20 og + for mellomrom?

Begge representerer mellomrom, men i ulike kontekster. %20 er den standard URL-kodingen for mellomrom og fungerer overalt. +-tegnet representerer mellomrom bare i søkestrenger som bruker application/x-www-form-urlencoded-formatet (HTML-skjemainnsendinger). Når du er i tvil, bruk %20.

Må jeg kode UTF-8-tegn?

Ja. Ikke-ASCII-tegn (bokstaver med aksenter, emoji, kinesiske tegn osv.) må UTF-8-kodes og deretter prosentkodes for inkludering i URL-er. JavaScripts encodeURIComponent() håndterer begge trinnene automatisk og konverterer tegn som é til %C3%A9.