URL-encoder
Procentkod enhver streng til sikker brug i URL'er og værdier i forespørgselsparametre
Almindelig tekst
Procentkodet
Hvad er URL-encoderen?
Smid en streng i venstre panel, og højre panel viser den procentkodede version. Under motorhjelmen kører encodeURIComponent, som escape'r hvert tegn med særlig betydning i en URL — mellemrum bliver til %20, og-tegn bliver til %26, snabel-a bliver til %40, og så videre. Det er den kodning, du vil have til VÆRDIER i forespørgselsparametre, stisegmenter og overalt hvor en rå streng skal med inde i en URL uden at bryde den.
Der er to kodningsvarianter, og forskellen betyder noget. encodeURIComponent (denne side) escape'r alt det specielle inklusive ?, #, &, = og / — for på værdiniveau ville de tegn ændre URL'ens betydning. encodeURI er mere tilladende og lader de strukturelle tegn være, fordi den forventer, at du koder en allerede færdigformet URL. MDN beskriver tabellen over reserverede tegn, hvis du har brug for detaljerne. Hvis du bygger en hel URL fra dele, er det URL Builder, du vil have, ikke denne side.
Selve kodningsreglen kommer fra RFC 3986 §2.1: hver usikker byte skrives som % efterfulgt af to hex-cifre af dens UTF-8-bytes. Det er derfor en emoji som raket giver fire procent-tripler (det er fire UTF-8-bytes), mens en ASCII som ! bliver på én. WHATWG's URL-standard formaliserer, hvordan moderne browsere gør det, og Wikipedias artikel om procent-kodning har en ren referencetabel, hvis du vil dobbelttjekke i hånden. Alt sker i din browser. Intet uploades, intet logges.
Sådan bruger du URL-encoderen
Tre trin. Siden opdaterer mens du skriver — ingen Konvertér-knap.
Indsæt din streng eller klik på Eksempel
Skriv eller indsæt vilkårlig tekst i venstre panel. Klik på Eksempel for at indlæse en streng med den slags tegn, man rent faktisk støder på — mellemrum, og-tegn, en e-mail, et procenttegn. Eksempel-input:
Ava Chen & friends? [email protected] 100% off!Unicode og emoji virker fint — encoderen bruger UTF-8-bytesekvenser, så et japansk navn eller en emoji bliver kodet til en multi-byte procentsekvens og ryger pænt frem og tilbage gennem enhver standardkonform decoder.
Læs det kodede output
Højre panel viser den procentkodede version. Mellemrum bliver til %20, & bliver til %26, ? bliver til %3F, @ bliver til %40, og % selv bliver til %25. Opdaterer mens du skriver.
Kopiér eller download
Klik Kopiér for at lægge den kodede streng på dit udklipsholder, eller Download for at gemme den som en .txt-fil. Brug Ryd i input-panelet for at starte forfra. For at gå den modsatte vej, hop over til URL-decoderen.
Hvornår du faktisk ville bruge det
Bygge en query string-værdi i hånden
Skal du konstruere ?customer=Ava%20Chen&status=active til en hurtig curl-test eller et deep link? Kod hver værdi her og indsæt i din URL. At glemme at kode en værdi med & i (et kundenavn som "Smith & Co.") er en klassisk kilde til mystiske "API'et ser kun halvdelen af min parameter"-bugs.
Kode et redirect-mål
OAuth-flows og SSO-redirects sender destinations-URL'en med inde i en forespørgselsparameter (f.eks. ?return_to=...). Den destinations-URL indeholder selv :, /, ?, & — som hver især skal procentkodes, så den ydre URL forbliver velformet. RFC 6749 §3.1.2 nævner det eksplicit for OAuth-redirect-URI'er.
Kode et stisegment med skråstreg i
Hvis dit REST-API har ruter som /repos/:owner/:name, og navnet tilfældigvis indeholder en skråstreg (sjældent, men lovligt i nogle kataloger), skal skråstregen kodes til %2F, ellers behandler routeren den som stiseparator. Samme logik for filnavne med mellemrum eller accenter i download-URL'er.
Saner brugerinput, før det rammer en URL
Enhver streng, der ryger ind i en URL fra en HTML-formular, et søgefelt eller en CSV-import, skal kodes. Ukodet brugerinput er præcis sådan, man ender med ødelagte links, parameter-injection-vektorer eller URL'er, der virker for ASCII-brugere og stille fejler for alle andre. OWASP's noter om path traversal er en god påmindelse om, hvad det koster at springe det her trin over.
Almindelige spørgsmål
Skal jeg bruge encodeURIComponent eller encodeURI?
Næsten altid encodeURIComponent — det er det, denne side bruger. Det er det rigtige valg til værdier i forespørgselsparametre, stisegmenter og overalt hvor en streng skal være et "stykke" af en URL. encodeURI er til at kode en URL, der allerede er strukturelt komplet (sjældent i praksis — normalt bygger du fra dele). MDN-referencen linket ovenfor har den fulde tabel over hvilke tegn hver af dem escape'r.
Hvorfor bruges + nogle gange til mellemrum og andre gange %20?
To kodningstraditioner lever side om side. application/x-www-form-urlencoded (?nøgle=værdi-kroppen i en HTML-formularsubmit) bruger + til mellemrum. Den generelle URL-procent-kodning fra RFC 3986 bruger %20. encodeURIComponent producerer altid %20. De fleste servere accepterer begge, men hvis din downstream-decoder er formular-streng, så byt med .replace(/%20/g, "+") efter kodning.
Håndterer den emoji og ikke-ASCII-tekst korrekt?
Ja. Encoderen serialiserer input som UTF-8 først og procentkoder så hver byte. Så en emoji bliver til en multi-byte procentsekvens, og enhver standardkonform decoder roundtripper den retur. Hvis du integrerer med et system, der bruger Latin-1 eller en anden legacy-kodning, har du et andet problem — skift upstream-systemet, lav ikke en ikke-UTF-8-encoder i hånden.
Hvilke tegn koder encodeURIComponent IKKE?
Bogstaverne A-Z og a-z, cifrene 0-9 og de ikke-reserverede tegn - _ . ! ~ * ' ( ). Alt andet procentkodes. Listen kommer direkte fra den oprindelige specifikation og er fast i enhver moderne JavaScript-motor — se ECMAScript-specen for encodeURIComponent, hvis du vil have kapitel og vers.
Bliver det input, jeg indsætter her, sendt nogen steder hen?
Nej. Kodning kører fuldstændigt i din browser via JavaScript-motoren. Ingen netværkskald, ingen server, ingen log. Indsæt secrets, tokens, hvad som helst følsomt — det forlader aldrig din maskine.
Hvor stor en streng kan jeg kode her?
Der er en grænse på 256 KB på input. URL-værdier i den virkelige verden er højst nogle få kilobytes. Hvis du har brug for at kode flere MB data, prøver du næsten med sikkerhed at klemme en payload ind i en URL, når du burde POST'e en body — kod det server-side og spring turen over.
Andre URL- og kodningsværktøjer
Kodning er én operation. Her er det, der naturligt parres med den: