CodeKitHub
Kodningsværktøjer

URL-koder / -afkoder online

Senest opdateret:

Procentkod tekst til sikker brug i URL'er, eller afkod en kodet URL tilbage til læsbar form. Vælg komponenttilstand (koder alt, til forespørgselsparameterværdier) eller fuld-URL-tilstand (bevarer ://?&-strukturen intakt). Kører helt i din browser.

Hvad er dette værktøj?

URL-kodning (procentkodning) erstatter tegn, der ikke er tilladt i URL'er, med et % efterfulgt af deres byteværdi i hex — et mellemrum bliver til %20, og 你 bliver til %E4%BD%A0. Uden det ville tegn som mellemrum, &, ? og ikke-ASCII-tekst ødelægge URL-strukturen eller blive fejlfortolket af servere.

Der er to almindelige behov, og dette værktøj understøtter begge: kodning af en værdi, der går ind i en forespørgselsparameter (komponenttilstand — koder også / ? & =), og kodning af en hel URL, mens dens struktur bevares (fuld-URL-tilstand — lader ://?& være intakt).

Et historisk kuriosum værd at kende: et mellemrum er korrekt %20 under URL-standarden (RFC 3986), men HTML-formularindsendelser har traditionelt kodet det som et plustegn i stedet — hvilket er grunden til, at du ser både q=hello%20world og q=hello+world i naturen, og hvorfor afkodning af formulardata nogle gange kræver, at + håndteres separat.

Hvorfor bruge det?

  • Byg forespørgselsstrenge sikkert — brugerinput med &, = eller mellemrum ødelægger ikke din URL.
  • Afkod lange kodede URL'er fra logfiler, analyseværktøjer eller omdirigeringskæder for at se, hvad de faktisk siger.
  • Korrekt UTF-8-håndtering for kinesisk, emoji og anden ikke-ASCII-tekst.
  • To tilstande, så du ikke ved et uheld koder : og / for en hel URL.
  • Gratis, øjeblikkeligt, ingen upload.

Sådan bruger du det

  1. Indsæt din tekst eller URL i inputfeltet.
  2. Vælg tilstanden: "Komponent" til værdier, der går ind i forespørgselsparametre, "Fuld URL" til hele URL'er.
  3. Klik på "Kod" eller "Afkod".
  4. Kopiér resultatet.

Eksempel

Input

https://eksempel.dk/soeg?q=hej verden & 你好

Output

Komponenttilstand: https%3A%2F%2Feksempel.dk%2Fsoeg%3Fq%3Dhej%20verden%20%26%20%E4%BD%A0%E5%A5%BD
Fuld URL-tilstand: https://eksempel.dk/soeg?q=hej%20verden%20&%20%E4%BD%A0%E5%A5%BD

Komponenttilstand koder også strukturtegn; fuld-URL-tilstand bevarer dem.

Almindelige brugssituationer

  • Bygning af en delbar URL, hvor en søgeterm eller filterværdi kommer fra brugerinput og muligvis indeholder mellemrum, & eller andre specialtegn.
  • Afkodning af en lang sporings- eller omdirigerings-URL fra en e-mail eller annoncekampagne for at se den faktiske destination og parametre, før du klikker på den.
  • Fejlfinding af, hvorfor en forespørgselsparameter ikke læses korrekt af en server — ofte er synderen et reserveret tegn, der skulle have været kodet, men ikke var det.
  • Forberedelse af en ikke-engelsk værdi (kinesisk, japansk, arabisk osv.) til brug i en URL-forespørgselsstreng.

encodeURIComponent vs. encodeURI, i praksis

Disse svarer direkte til dette værktøjs to tilstande og svarer til rigtige JavaScript-funktioner, udviklere allerede kender: encodeURIComponent (komponenttilstand) koder alt undtagen et lille sæt uforbeholdte tegn, hvilket gør det sikkert for enhver enkelt værdi, der indsættes i en URL — dette er, hvad du bruger til en forespørgselsparameter, et stisegment eller en hash-fragmentværdi. encodeURI (fuld-URL-tilstand) lader URL'ens strukturtegn (:, /, ?, #, &, =) være urørt, fordi den antager, at du koder en hel, allerede struktureret URL, ikke en rå værdi — at bruge den på en enkelt parameterværdi ville undlade at kode &- eller =-tegnene, den værdi kunne indeholde, hvilket er den mest almindelige fejl, folk laver, når de vælger den forkerte tilstand.

Reserverede vs. ikke-reserverede tegn

URL-specifikationen (RFC 3986) opdeler tegn i to grupper: ikke-reserverede tegn (bogstaver, tal, - _ . ~) er altid sikre og kodes aldrig, mens reserverede tegn (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) har særlig betydning i URL-strukturen og kun skal kodes, når de optræder som bogstavelige data frem for strukturel tegnsætning. Det er præcis derfor, de to tilstande findes — komponenttilstand behandler reserverede tegn som data, der skal beskyttes, fuld-URL-tilstand behandler dem som struktur, der skal bevares. At forstå denne skelnen er mere nyttigt end at udenadlære, hvornår hvilken tilstand skal bruges, da det forklarer, hvorfor det samme tegn (som &) nogle gange kodes og nogle gange lades i fred, afhængigt af hvilken rolle det spiller i den specifikke URL.

Ofte stillede spørgsmål

Hvornår skal jeg bruge komponenttilstand vs. fuld-URL-tilstand?

Komponenttilstand (encodeURIComponent), når du koder en enkelt værdi, der går ind i en forespørgselsparameter — den koder /, ?, & og =, så de ikke kan ødelægge URL'en. Fuld-URL-tilstand (encodeURI), når du koder en komplet URL — den bevarer strukturtegnene, så URL'en stadig fungerer.

Hvorfor optrådte %20 i stedet for + for mellemrum?

Begge er gyldige i forskellige sammenhænge. %20 er den universelle procentkodning for et mellemrum; + betyder mellemrum kun inden i forespørgselsstrenge, der bruger det ældre application/x-www-form-urlencoded-format. Dette værktøj bruger %20, som fungerer overalt.

Hvorfor fejler afkodning med en fejlmeddelelse?

Inputtet indeholder en fejlbehæftet procentsekvens, som et % ikke efterfulgt af to hex-cifre. Dette sker ofte, når en URL blev afkortet eller dobbeltafkodet. Ret eller fjern den ødelagte %-sekvens.

Hvad er dobbeltkodning?

Kodning af allerede kodet tekst: %20 bliver til %2520, fordi % selv kodes til %25. Det er en almindelig fejl — hvis dit afkodede output stadig indeholder %-koder, skal du afkode det én gang mere.

Håndterer dette kinesiske tegn og emoji?

Ja. Tekst kodes som UTF-8-bytes, så 你好 bliver til %E4%BD%A0%E5%A5%BD og afkodes perfekt tilbage — samme adfærd som browsere bruger.

Relaterede værktøjer