URL-koder
Prosentkod hvilken som helst streng for trygg bruk i URL-er og verdier i spørringsparametere
Vanlig tekst
Prosentkodet
Hva er URL-koderen?
Slipp en streng inn i venstre panel, så viser høyre panel den prosentkodede versjonen. Under panseret kjører encodeURIComponent, som escaper hvert tegn med spesiell betydning i en URL — mellomrom blir %20, og-tegn blir %26, krøllalfa blir %40, og så videre. Dette er kodingen du vil ha for VERDIER i spørringsparametere, stisegmenter og overalt der en rå streng skal være med inni en URL uten å ødelegge den.
Det finnes to kodingsvarianter, og forskjellen betyr noe. encodeURIComponent (denne siden) escaper alt det spesielle inkludert ?, #, &, = og / — fordi på verdinivå ville disse tegnene endre URL-ens betydning. encodeURI er mer ettergivende og lar de strukturelle tegnene være, fordi den forventer at du koder en allerede ferdigformet URL. MDN går gjennom tabellen over reserverte tegn hvis du trenger detaljene. Hvis du bygger en hel URL fra deler, er det URL Builder du vil ha, ikke denne siden.
Selve kodingsregelen kommer fra RFC 3986 §2.1: hver utrygg byte skrives som % etterfulgt av to hex-sifre av dens UTF-8-bytes. Det er derfor en emoji som rakett gir fire prosent-tripler (det er fire UTF-8-bytes), mens en ASCII som ! blir til én. WHATWGs URL-standard formaliserer hvordan moderne nettlesere gjør det, og Wikipedias artikkel om prosent-koding har en ren referansetabell hvis du vil dobbeltsjekke for hånd. Alt skjer i nettleseren din. Ingenting blir lastet opp, ingenting logges.
Slik bruker du URL-koderen
Tre trinn. Siden oppdateres mens du skriver — ingen Konverter-knapp.
Lim inn strengen din eller klikk Eksempel
Skriv eller lim inn en hvilken som helst tekst i venstre panel. Klikk på Eksempel for å laste inn en streng med den typen tegn man faktisk møter — mellomrom, og-tegn, en e-post, et prosenttegn. Eksempel-input:
Ava Chen & friends? [email protected] 100% off!Unicode og emoji virker fint — koderen bruker UTF-8-bytesekvenser, så et japansk navn eller en emoji kodes til en multi-byte prosentsekvens og kommer rent tilbake gjennom hvilken som helst standardkonform dekoder.
Les den kodede utdataen
Høyre panel viser den prosentkodede versjonen. Mellomrom blir %20, & blir %26, ? blir %3F, @ blir %40, og % selv blir %25. Oppdateres mens du skriver.
Kopier eller last ned
Klikk Kopier for å legge den kodede strengen på utklippstavlen, eller Last ned for å lagre den som en .txt-fil. Bruk Tøm i input-panelet for å starte på nytt. For å gå motsatt vei, hopp over til URL-dekoderen.
Når du faktisk ville brukt dette
Bygge en query string-verdi for hånd
Trenger å konstruere ?customer=Ava%20Chen&status=active for en kjapp curl-test eller en deep link? Kod hver verdi her og lim inn i URL-en din. Å glemme å kode en verdi med & i seg (et kundenavn som "Smith & Co.") er en klassisk kilde til mystiske "API-et ser bare halvparten av parameteren min"-feil.
Kode en redirect-URL
OAuth-flyter og SSO-redirects sender destinasjons-URL-en inni en spørringsparameter (f.eks. ?return_to=...). Den destinasjons-URL-en inneholder selv :, /, ?, & — som hver må prosentkodes for at den ytre URL-en skal forbli velformet. RFC 6749 §3.1.2 nevner dette eksplisitt for OAuth-redirect-URI-er.
Kode et stisegment med skråstrek i
Hvis REST-API-et ditt har ruter som /repos/:owner/:name, og navnet tilfeldigvis inneholder en skråstrek (sjelden, men lovlig i noen kataloger), må skråstreken kodes til %2F, ellers behandler ruteren den som stiseparator. Samme logikk for filnavn med mellomrom eller aksenter i nedlastings-URL-er.
Sanere brukerinput før det treffer en URL
Enhver streng på vei inn i en URL fra et HTML-skjema, en søkeboks eller en CSV-import må kodes. Ukodet brukerinput er nøyaktig hvordan man ender med ødelagte lenker, vektorer for parameterinjeksjon, eller URL-er som virker for ASCII-brukere og stille feiler for alle andre. OWASPs notater om path traversal er en god påminnelse om hva det koster å hoppe over dette trinnet.
Vanlige spørsmål
Skal jeg bruke encodeURIComponent eller encodeURI?
Nesten alltid encodeURIComponent — det er det denne siden bruker. Det er det riktige valget for verdier i spørringsparametere, stisegmenter og overalt der en streng skal være et "stykke" av en URL. encodeURI er for å kode en URL som allerede er strukturelt komplett (sjelden i praksis — vanligvis bygger du fra deler). MDN-referansen lenket ovenfor har den fullstendige tabellen over hvilke tegn hver av dem escaper.
Hvorfor brukes + noen ganger for mellomrom og andre ganger %20?
To kodingstradisjoner lever side om side. application/x-www-form-urlencoded (?nøkkel=verdi-kroppen i en HTML-skjemainnsending) bruker + for mellomrom. Den generelle URL-prosent-kodingen fra RFC 3986 bruker %20. encodeURIComponent produserer alltid %20. De fleste servere godtar begge, men hvis dekoderen din lenger nede er skjema-streng, bytt med .replace(/%20/g, "+") etter koding.
Håndterer den emoji og ikke-ASCII-tekst riktig?
Ja. Koderen serialiserer input som UTF-8 først, og prosentkoder så hver byte. Så en emoji blir til en multi-byte prosentsekvens, og hvilken som helst standardkonform dekoder roundtripper den tilbake. Hvis du integrerer med et system som bruker Latin-1 eller annen legacy-koding, har du et annet problem — endre oppstrømssystemet, ikke lag en ikke-UTF-8-koder for hånd.
Hvilke tegn koder encodeURIComponent IKKE?
Bokstavene A-Z og a-z, sifrene 0-9, og de ikke-reserverte tegnene - _ . ! ~ * ' ( ). Alt annet prosentkodes. Listen kommer direkte fra den opprinnelige spesifikasjonen og er fast i enhver moderne JavaScript-motor — se ECMAScript-spesen for encodeURIComponent hvis du vil ha kapittel og vers.
Blir inputtet jeg limer inn her sendt noe sted?
Nei. Koding kjører helt og holdent i nettleseren din via JavaScript-motoren. Ingen nettverkskall, ingen server, ingen logg. Lim inn hemmeligheter, tokens, hva som helst sensitivt — det forlater aldri maskinen din.
Hvor stor streng kan jeg kode her?
Det er et tak på 256 KB på inputtet. URL-verdier i den virkelige verden er på det meste noen kilobytes. Hvis du må kode flere MB med data, prøver du nesten helt sikkert å presse en payload inn i en URL når du burde POST-e en kropp — kod det på serversiden og hopp over turen.
Andre URL- og kodingsverktøy
Koding er én operasjon. Her er det som naturlig parer seg med den: