Prosentkodet

Dekodet Tekst

Hva er URL-dekoderen?

Lim inn en prosentkodet streng i venstre panel, og høyre panel viser originalen. Under panseret kjører den decodeURIComponent, som går gjennom hver %XX-sekvens i input, behandler disse hex-parene som UTF-8-byte og bygger opp originaltegnene igjen. Så %20 blir et mellomrom, %26 blir &, %E2%9C%85 blir et hakemerke. Den motsatte retningen bor på URL-koderen.

Hvorfor er dekoding kinkig? Fordi ikke hvert % i den ville verden er en del av en gyldig prosentkodet sekvens. En enslig % etterfulgt av ikke-hex-tegn (%G1, % på slutten av strengen) er feilformatert, og dekoderen kaster en URIError: URI malformed. Denne siden fanger det og viser en vennlig "Ugyldig koding"-melding i stedet for et stack trace, så en korrupt innliming ikke knekker siden. De nøyaktige reglene for hva som regnes som gyldig, bor i RFC 3986 §2.1 og WHATWG URL-standarden.

Pass på dobbelkoding. Hvis du dekoder en streng og output FORTSATT inneholder %-tegn (f.eks. du fikk Ava%2520Chen tilbake i stedet for Ava Chen), ble verdien kodet to ganger et sted i kjeden — vanligvis en proxy eller et rammeverk som autokodet en allerede kodet verdi. Å dekode igjen tar deg resten av veien. Wikipedias notater om dobbelkoding har en god gjennomgang av hvordan det skjer. Alt kjører i nettleseren din. Ingen opplasting, ingen server, ingen logger.

Slik Bruker Du URL-dekoderen

Tre trinn. Siden oppdateres mens du skriver — ingen Konverter-knapp.

1

Lim inn din kodede streng eller klikk på Eksempel

Slipp en prosentkodet streng i venstre panel. Klikk Eksempel for å laste et realistisk tilfelle. Eksempel-input:

Ava%20Chen%20%26%20friends%3F%20customer%40shop.com%20%20100%25%20off!

Feilformatert input (en enslig <code>%</code>, et ugyldig hex-par som <code>%G1</code>) dukker opp som "Ugyldig koding"-melding i outputpanelet — se <a href="https://tc39.es/ecma262/#sec-decodeuricomponent-encodeduricomponent" target="_blank" rel="noopener">ECMAScript-spesifikasjonen for decodeURIComponent</a> for de nøyaktige feilreglene.

2

Les den dekodede outputten

Høyre panel viser den dekodede teksten. %20 blir et mellomrom, %26 blir &, %3F blir ?, %40 blir @, %25 blir %. Oppdateres mens du skriver.

3

Kopier eller last ned

Klikk Kopier for å legge den dekodede teksten på utklippstavlen, eller Last ned for å lagre den som en .txt-fil. Bruk Tøm i inputpanelet for å starte på nytt. For å gå motsatt vei, hopp over til URL-koderen.

Når Du Faktisk Vil Bruke Dette

Lese hva som faktisk står i en query-parameter

En URL som ?customer=Ava%20Chen&tag%5B0%5D=red er vanskelig å skanne med prosentkodene fortsatt på plass. Lim inn én verdi her, og du får Ava Chen eller tag[0] tilbake, noe som gjør det åpenbart om parameteren er det du forventet. For å bryte ned en hel URL tar URL-parseren seg av query-parametere automatisk.

Feilsøke dobbelkodede verdier

Du limer inn Ava%2520Chen, dekoder én gang, får Ava%20Chen. Det ekstra laget er det rykende beviset — et sted har en proxy, et rammeverk eller et bibliotek kodet verdien en andre gang. Dekod igjen for å få den ekte strengen. OAuth-spesifikasjoner er hyppige skurker, fordi redirect_uri-verdier ofte passerer gjennom lag som hver hjelpsomt koder dem på nytt.

Inspisere webhook- og analyseverktøy-URL-er fra logger

Når noe feiler i produksjon, er URL-en i tilgangsloggen vanligvis fullt kodet — %7B%22event%22%3A%22signup%22%7D i stedet for JSON-en webhooken faktisk sendte. Lim den inn her og du får {"event":"signup"} tilbake, som faktisk er noe du kan lese.

Dekode en magic link eller URL for tilbakestilling av passord

Når en kunde som Marco Rivera sier "tilbakestillingslenken er ødelagt", inneholder lenken et token, en e-post og et omdirigeringsmål — alle prosentkodede. Å dekode den mistenkelige parameteren viser om e-posten er riktig adresse, om tokenet overlevde manglingen til en e-postklient, eller om omdirigerings-URI-en ble kuttet av.

Vanlige Spørsmål

Hva skjer med feilformatert input som en enslig % eller %G1?

Den innebygde decodeURIComponent kaster en URIError: URI malformed på en sekvens som ikke er et gyldig %XX-hex-par. Denne siden fanger det og skriver "Ugyldig koding: ..." i outputpanelet i stedet for å krasje. De hyppigste årsakene er en vildfarende literal % som burde vært %25, eller et kopier-lim-inn som mistet et avsluttende hex-siffer.

Hvordan vet jeg om inputen min er dobbelkodet?

Dekod én gang. Hvis output fortsatt har %-tegn (særlig %20, %2F, %3A) og skulle vært ren tekst, ble det kodet to ganger. Dekod outputten fra den første dekodingen. Tre runder er sjeldent men mulig — betyr vanligvis en kjede av tre forskjellige tjenester der hver kodet den samme verdien.

Og hva med plusstegn — skal de dekodes til mellomrom?

Ikke med decodeURIComponent — den lar + være. Konvensjonen +-som-mellomrom hører til application/x-www-form-urlencoded (HTML-skjemainnsendinger), ikke generell URL-prosentkoding. Hvis inputen din kommer fra en skjema-body og har + for mellomrom, kjør .replace(/\+/g, "%20") først, så dekod. WHATWG-spesifikasjonen for application/x-www-form-urlencoded beskriver denne to-smaks-situasjonen.

Klarer den round-trip av Unicode og emoji korrekt?

Ja. Prosentkodede flerbyte UTF-8-sekvenser (f.eks. %E2%9C%85 for et hakemerke, %F0%9F%9A%80 for en rakett) dekodes rett tilbake til de opprinnelige tegnene. Den eneste måten dette feiler på, er hvis koderen brukte et ikke-UTF-8-tegnsett, noe moderne systemer ikke gjør.

Blir inputen jeg limer inn her sendt noe sted?

Nei. Dekodingen kjører helt i nettleseren din. Ingen nettverkskall, ingen serverlogg, ingenting forlater maskinen din. Tokens, e-poster, signerte URL-er — alt trygt å lime inn.

Hvor stor streng kan jeg dekode her?

Det er en grense på 256 KB på input. Har du hundrevis av KB prosentkodet tekst, har du nesten sikkert en payload som burde dekodes på serversiden i stedet for å limes inn i et verktøy — kodede payloads av den størrelsen indikerer vanligvis misbruk av URL-koding til en jobb som roper på base64 eller en request body.

Andre URL- og Kodingsverktøy

Dekoding er én operasjon. Her er det som naturlig går sammen med det: