Utilia

URL-koder og -afkoder

Gratis URL-koder og -afkoder. Procentkod forespørgselsparametre eller hele URL'er, afkod %XX-sekvenser, og behandl + som mellemrum. Kører i din browser.

Tilstand

Sådan bruger du URL-koderen og -afkoderen

  1. Vælg Kod for at omdanne tekst til en URL-sikker form, eller Afkod for at omdanne procentkodet tekst til læselige tegn igen.
  2. Ved kodning vælger du en tilstand: Komponent til en enkelt værdi (som en forespørgselsparameter eller et stisegment) eller Hel URL for at kode en komplet adresse og bevare dens opbygning.
  3. Når du afkoder data fra en HTML-formular eller en forespørgselsstreng, så slå Behandl + som mellemrum til, så +-tegn bliver til mellemrum.
  4. Indsæt din tekst, og kopiér resultatet. Hvis en procentsekvens er ugyldig, melder værktøjet en fejl i stedet for at gætte.

Hvad er URL-kodning?

URL’er må kun indeholde et begrænset sæt ASCII-tegn. Nogle tegn, som /, ?, #, & og =, er reserverede, fordi de adskiller delene af en adresse: stien, forespørgselsstrengen og fragmentet. Andre, som mellemrum, anførselstegn, bogstaver med accent eller emoji, er simpelthen ikke tilladt. URL-kodning, også kaldet procentkodning, løser begge problemer ved at erstatte hver problematisk byte med et % efterfulgt af to hexadecimale cifre.

Teksten omdannes først til UTF-8-bytes, og hver byte kodes for sig. Et mellemrum bliver til %20, et og-tegn bliver til %26, é (to byte i UTF-8) bliver til %C3%A9, og emojien 😀 (fire byte) bliver til %F0%9F%98%80. Ureserverede tegn, altså bogstaver, cifre og - _ . ~, skal aldrig kodes.

Komponent-tilstand eller hel URL

Det vigtigste valg er at vælge den rigtige tilstand, og at tage fejl er en klassisk kilde til fejl.

Komponent-tilstand virker som JavaScripts encodeURIComponent. Den koder alle reserverede tegn, så resultatet sikkert kan placeres inde i én del af en URL. Brug den til værdier af forespørgselsparametre, stisegmenter eller alt, en bruger har skrevet. For eksempel bliver søgeordet rock & roll til rock%20%26%20roll. Hvis du ikke havde kodet &, ville serveren læse roll som begyndelsen på en ny parameter.

Hel URL-tilstand virker som encodeURI. Den går ud fra, at input allerede er en komplet adresse, og bevarer de tegn, der giver den struktur, som : / ? # & og =, mens den koder mellemrum og tegn uden for ASCII. Brug den til at rydde op i en adresse som https://example.com/café menu?q=tea, så den bliver til https://example.com/caf%C3%A9%20menu?q=tea. Brug den ikke til enkeltstående værdier: et & inde i en værdi ville forblive ukodet og ødelægge forespørgselsstrengen.

En god tommelfingerregel: byg URL’er af dele, kod hver værdi i komponent-tilstand, og brug kun hel URL-tilstand til adresser, du modtager færdigsamlede.

Tegnet + og formularkodning

HTML-formularer, der sendes med application/x-www-form-urlencoded, koder mellemrum som + i stedet for %20. Derfor ser søge-URL’er ofte ud som ?q=hello+world. Almindelig procentafkodning lader + være uændret, fordi et plus i en sti blot er et plus. Når du afkoder en forespørgselsstreng eller formulardata, så slå Behandl + som mellemrum til for at få hello world. Lad den være slået fra til stier og til værdier, hvor et bogstaveligt + har betydning, som telefonnumre eller Base64-data. Et rigtigt plustegn i formulardata sendes som %2B, så det afkodes korrekt i begge tilfælde.

Privatliv

Kodning og afkodning kører helt i din browser. Intet, du indsætter, herunder URL’er, der kan indeholde tokens, sessions-id’er eller personoplysninger, sendes til en server eller gemmes.

Ofte stillede spørgsmål

Hvorfor mislykkes afkodningen med en fejl om ugyldig kodning?

Et % skal efterfølges af præcis to hexadecimale cifre, og de resulterende bytes skal danne gyldig UTF-8. Strenge som 100%, %G1 eller en afkortet sekvens som %E2%82 kan ikke afkodes pålideligt, så værktøjet melder problemet i stedet for at lave forkert tekst. Vil du have et bogstaveligt procenttegn med, så kod det som %25.

Hvad er forskellen på %20 og +?

Begge kan repræsentere et mellemrum, men i forskellige sammenhænge. %20 er gyldigt overalt i en URL. + betyder kun mellemrum i formularkodede forespørgselsstrenge; andre steder er det et bogstaveligt plustegn.

Skal jeg kode en hel URL i komponent-tilstand?

Kun hvis hele URL’en selv er en værdi inde i en anden URL, for eksempel en redirect=-parameter. I så fald er komponent-tilstand præcis det rigtige: https://a.com/?x=1 bliver til https%3A%2F%2Fa.com%2F%3Fx%3D1.

Hvorfor er min tekst kodet to gange?

Dobbeltkodning sker, når tekst, der allerede er kodet, kodes igen, så %20 bliver til %2520. Afkod én gang for at tjekke, og sørg for, at hver værdi kun kodes i det øjeblik, den sættes ind i URL’en.

Skjuler eller beskytter URL-kodning data?

Nej. Procentkodning kan fuldt ud føres tilbage og giver ingen sikkerhed. Følsomme værdier i URL’er kan ende i browserhistorik og serverlogfiler, så undgå overhovedet at lægge hemmeligheder i URL’er.