CodeKitHub
Kodingsverktøy

URL-koder / dekoder på nett

Sist oppdatert:

Prosentkod tekst for trygg bruk i URL-er, eller dekod en kodet URL tilbake til lesbar form. Velg komponentmodus (koder alt, for verdier i spørrestrenger) eller full-URL-modus (beholder :// ? &-strukturen intakt). Kjører helt i nettleseren din.

Hva er dette verktøyet?

URL-koding (prosentkoding) erstatter tegn som ikke er tillatt i URL-er med en % etterfulgt av byteverdien i heksadesimal — et mellomrom blir %20, og 你 blir %E4%BD%A0. Uten dette ville tegn som mellomrom, &, ? og ikke-ASCII-tekst ødelegge URL-strukturen eller bli feiltolket av servere.

Det finnes to vanlige behov, og dette verktøyet støtter begge: å kode en verdi som skal inn i en spørreparameter (komponentmodus — koder også / ? & =), og å kode en hel URL mens strukturen beholdes (full-URL-modus — lar :// ? & stå urørt).

Én historisk kuriositet verdt å kjenne til: et mellomrom er korrekt %20 ifølge URL-standarden (RFC 3986), men HTML-skjemainnsendinger har tradisjonelt kodet det som et plusstegn i stedet — det er derfor du ser både q=hello%20world og q=hello+world i praksis, og hvorfor dekoding av skjemadata av og til krever at + håndteres separat.

Hvorfor bruke det?

  • Bygg spørrestrenger trygt — brukerinput med &, = eller mellomrom ødelegger ikke URL-en din.
  • Dekod lange kodede URL-er fra logger, analyse eller omdirigeringskjeder for å se hva de faktisk sier.
  • Korrekt UTF-8-håndtering for kinesisk, emoji og annen ikke-ASCII-tekst.
  • To modus slik at du ikke ved et uhell koder : og / i en hel URL.
  • Gratis, umiddelbart, ingen opplasting.

Slik bruker du det

  1. Lim inn teksten eller URL-en din i inndatafeltet.
  2. Velg modus: «Komponent» for verdier som skal inn i spørreparametere, «Full URL» for hele URL-er.
  3. Klikk «Kod» eller «Dekod».
  4. Kopier resultatet.

Eksempel

Inndata

https://example.com/search?q=hello world & 你好

Resultat

Komponentmodus: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Full URL-modus:  https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BD

Komponentmodus koder også strukturtegn; full-URL-modus bevarer dem.

Vanlige bruksområder

  • Bygge en delbar URL der et søkeord eller filterverdi kommer fra brukerinput og kan inneholde mellomrom, & eller andre spesialtegn.
  • Dekode en lang sporings- eller omdirigerings-URL fra en e-post eller annonsekampanje for å se den faktiske destinasjonen og parameterne før du klikker på den.
  • Feilsøke hvorfor en spørreparameter ikke leses riktig av en server — ofte er synderen et reservert tegn som skulle vært kodet, men ikke ble det.
  • Klargjøre en ikke-engelsk (kinesisk, japansk, arabisk osv.) verdi for bruk i en URL-spørrestreng.

encodeURIComponent versus encodeURI, i praksis

Disse tilsvarer direkte verktøyets to modus og korresponderer med reelle JavaScript-funksjoner utviklere allerede kjenner: encodeURIComponent (komponentmodus) koder alt unntatt et lite sett med ureserverte tegn, noe som gjør den trygg for enhver enkeltverdi som settes inn i en URL — dette er det du bruker for en spørreparameter, et stisegment eller en hash-fragmentverdi. encodeURI (full-URL-modus) lar URL-ens strukturtegn (:, /, ?, #, &, =) stå urørt fordi den forutsetter at du koder en hel, allerede strukturert URL, ikke en rå verdi — å bruke den på en enkelt parameterverdi ville mislykkes i å kode &- eller =-tegn verdien måtte inneholde, som er den vanligste feilen folk gjør når de velger feil modus.

Reserverte versus ureserverte tegn

URL-spesifikasjonen (RFC 3986) deler tegn inn i to grupper: ureserverte tegn (bokstaver, tall, - _ . ~) er alltid trygge og kodes aldri, mens reserverte tegn (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) har spesiell betydning i URL-strukturen og trenger bare kodes når de opptrer som bokstavelig data snarere enn strukturell tegnsetting. Dette er nettopp grunnen til at de to modusene finnes — komponentmodus behandler reserverte tegn som data som må beskyttes, full-URL-modus behandler dem som struktur som må bevares. Å forstå dette skillet er mer nyttig enn å pugge når du skal bruke hvilken modus, siden det forklarer hvorfor samme tegn (som &) noen ganger kodes og noen ganger ikke, avhengig av hvilken rolle det spiller i den aktuelle URL-en.

Ofte stilte spørsmål

Når bør jeg bruke komponentmodus fremfor full-URL-modus?

Komponentmodus (encodeURIComponent) når du koder en enkelt verdi som skal inn i en spørreparameter — den koder /, ?, & og = slik at de ikke kan ødelegge URL-en. Full-URL-modus (encodeURI) når du koder en hel URL — den beholder strukturtegnene slik at URL-en fortsatt fungerer.

Hvorfor viste det %20 i stedet for + for mellomrom?

Begge er gyldige i ulike sammenhenger. %20 er den universelle prosentkodingen for mellomrom; + betyr mellomrom bare inne i spørrestrenger som bruker det eldre application/x-www-form-urlencoded-formatet. Dette verktøyet bruker %20, som fungerer overalt.

Hvorfor feiler dekodingen med en feilmelding?

Inndataen inneholder en feilformet prosentsekvens, som en % som ikke etterfølges av to heksadesimale sifre. Dette skjer ofte når en URL er blitt kuttet av eller dobbeltdekodet. Rett opp eller fjern den ødelagte %-sekvensen.

Hva er dobbeltkoding?

Å kode tekst som allerede er kodet: %20 blir %2520 fordi selve % kodes til %25. Det er en vanlig feil — hvis den dekodede utdataen fortsatt inneholder %-koder, dekod én gang til.

Håndterer dette kinesiske tegn og emoji?

Ja. Tekst kodes som UTF-8-bytes, så 你好 blir %E4%BD%A0%E5%A5%BD og dekodes tilbake perfekt — samme oppførsel som nettlesere bruker.

Relaterte verktøy