Utilia

URL-koding og -dekoding

Gratis URL-koder og -dekoder. Prosentkod spørringsparametere eller hele URL-er, dekod %XX-sekvenser og behandle + som mellomrom. Kjører i nettleseren din.

Modus

Slik bruker du URL-koderen og -dekoderen

  1. Velg Kod for å gjøre tekst om til en URL-sikker form, eller Dekod for å gjøre prosentkodet tekst om til lesbare tegn igjen.
  2. Når du koder, velger du en modus: Komponent for én enkelt verdi (for eksempel en spørringsparameter eller et stisegment), eller Hel URL for å kode en komplett adresse samtidig som strukturen beholdes.
  3. Når du dekoder data fra et HTML-skjema eller en spørringsstreng, slår du på Behandle + som mellomrom, slik at +-tegn blir til mellomrom.
  4. Lim inn teksten din og kopier resultatet. Hvis en prosentsekvens er ugyldig, melder verktøyet en feil i stedet for å gjette.

Hva er URL-koding?

URL-er kan bare inneholde et begrenset utvalg ASCII-tegn. Noen tegn, som /, ?, #, & og =, er reservert fordi de skiller delene av en adresse: stien, spørringsstrengen og fragmentet. Andre, som mellomrom, anførselstegn, bokstaver med aksent eller emoji, er rett og slett ikke tillatt. URL-koding, også kalt prosentkoding, løser begge problemene ved å erstatte hver problematiske byte med en % etterfulgt av to heksadesimale sifre.

Teksten gjøres først om til UTF-8-byte, og hver byte kodes for seg. Et mellomrom blir %20, et og-tegn blir %26, é (to byte i UTF-8) blir %C3%A9, og emojien 😀 (fire byte) blir %F0%9F%98%80. Ureserverte tegn, altså bokstaver, sifre og - _ . ~, trenger aldri koding. Norske tegn som æ, ø og å er ikke ASCII, så de kodes alltid: å blir %C3%A5.

Komponentmodus eller hel URL

Å velge riktig modus er den viktigste avgjørelsen, og feil valg er en klassisk kilde til feil.

Komponentmodus fungerer som JavaScripts encodeURIComponent. Den koder alle reserverte tegn, så resultatet trygt kan settes inn i én del av en URL. Bruk den til verdier i spørringsparametere, stisegmenter og alt en bruker har skrevet inn. Søkeordet rock & roll blir for eksempel rock%20%26%20roll. Hvis du ikke hadde kodet &, ville serveren lest roll som begynnelsen på en ny parameter.

Modusen Hel URL fungerer som encodeURI. Den forutsetter at inndataene allerede er en komplett adresse, og beholder tegnene som gir den struktur, som : / ? # & og =, mens mellomrom og tegn utenfor ASCII kodes. Bruk den til å rydde opp i en adresse som https://example.com/café menu?q=tea til https://example.com/caf%C3%A9%20menu?q=tea. Ikke bruk den på enkeltverdier: en & inni en verdi ville stå ukodet og ødelegge spørringsstrengen.

En god tommelfingerregel: bygg URL-er av deler, kod hver verdi i komponentmodus, og bruk modusen Hel URL bare for adresser du får ferdig satt sammen.

Plusstegnet og skjemakoding

HTML-skjemaer som sendes med application/x-www-form-urlencoded, koder mellomrom som + i stedet for %20. Derfor ser søke-URL-er ofte ut som ?q=hello+world. Vanlig prosentdekoding lar + stå uendret, fordi et pluss i en sti bare er et pluss. Når du dekoder en spørringsstreng eller skjemadata, slår du på Behandle + som mellomrom for å få hello world. La det stå av for stier og for verdier der et ekte + har betydning, som telefonnumre eller Base64-data. Et ekte plusstegn i skjemadata sendes som %2B, så det dekodes riktig uansett.

Personvern

Koding og dekoding kjører helt i nettleseren din. Ingenting du limer inn, inkludert URL-er som kan inneholde tokens, økt-ID-er eller personopplysninger, sendes til en server eller lagres.

Ofte stilte spørsmål

Hvorfor mislykkes dekodingen med en «ugyldig»-feil?

En % må følges av nøyaktig to heksadesimale sifre, og de resulterende byte-ene må utgjøre gyldig UTF-8. Strenger som 100%, %G1 eller en avkuttet sekvens som %E2%82 kan ikke dekodes pålitelig, så verktøyet melder problemet i stedet for å lage feil tekst. For å ta med et ekte prosenttegn koder du det som %25.

Hva er forskjellen på %20 og +?

Begge kan representere et mellomrom, men i ulike sammenhenger. %20 er gyldig overalt i en URL. + betyr bare mellomrom i skjemakodede spørringsstrenger. Ellers er det et ekte plusstegn.

Bør jeg kode en hel URL i komponentmodus?

Bare hvis hele URL-en selv er en verdi inni en annen URL, for eksempel en redirect=-parameter. I så fall er komponentmodus helt riktig: https://a.com/?x=1 blir https%3A%2F%2Fa.com%2F%3Fx%3D1.

Hvorfor er teksten min kodet to ganger?

Dobbeltkoding skjer når tekst som allerede er kodet, kodes på nytt, slik at %20 blir %2520. Dekod én gang for å sjekke, og pass på at hver verdi bare kodes i det øyeblikket den settes inn i URL-en.

Skjuler eller beskytter URL-koding data?

Nei. Prosentkoding er fullt reversibel og gir ingen sikkerhet. Sensitive verdier i URL-er kan havne i nettleserhistorikk og serverlogger, så unngå å legge hemmeligheter i URL-er i det hele tatt.