Procentkodat

Avkodad Text

Vad är URL-avkodaren?

Klistra in en procentkodad sträng i den vänstra panelen och den högra panelen visar originalet. Under huven kör den decodeURIComponent, som går igenom varje %XX-sekvens i indata, behandlar dessa hex-par som UTF-8-byte och bygger upp originaltecknen igen. Så %20 blir ett mellanslag, %26 blir &, %E2%9C%85 blir en bock. Den omvända riktningen bor i URL-kodaren.

Varför är avkodning lurigt? För att inte varje % ute i naturen är del av en giltig procentkodad sekvens. Ett ensamt % följt av icke-hex-tecken (%G1, % i slutet av strängen) är felformat och avkodaren kastar ett URIError: URI malformed. Den här sidan fångar det och visar ett vänligt "Ogiltig kodning"-meddelande istället för en stack trace, så en korrupt inklistring välter inte sidan. De exakta reglerna för vad som räknas som giltigt bor i RFC 3986 §2.1 och WHATWG URL-standarden.

Akta dig för dubbelkodning. Om du avkodar en sträng och utdata FORTFARANDE innehåller %-tecken (t.ex. du fick tillbaka Ava%2520Chen istället för Ava Chen), har värdet kodats två gånger någonstans i kedjan — vanligen en proxy eller ett ramverk som autokodade ett redan kodat värde. Avkoda igen så når du resten av vägen. Wikipedias anteckningar om dubbelkodning har en bra genomgång av hur det händer. Allt körs i din webbläsare. Ingen uppladdning, ingen server, inga loggar.

Så Här Använder Du URL-avkodaren

Tre steg. Sidan uppdateras medan du skriver — ingen Konvertera-knapp.

1

Klistra in din kodade sträng eller klicka på Exempel

Släpp en procentkodad sträng i den vänstra panelen. Klicka på Exempel för att ladda ett realistiskt fall. Exempel-indata:

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

Felformaterad indata (ett ensamt <code>%</code>, ett ogiltigt hex-par som <code>%G1</code>) dyker upp som ett "Ogiltig kodning"-meddelande i utdatapanelen — se <a href="https://tc39.es/ecma262/#sec-decodeuricomponent-encodeduricomponent" target="_blank" rel="noopener">ECMAScript-specifikationen för decodeURIComponent</a> för de exakta felreglerna.

2

Läs den avkodade utdatan

Den högra panelen visar den avkodade texten. %20 blir ett mellanslag, %26 blir &, %3F blir ?, %40 blir @, %25 blir %. Uppdateras medan du skriver.

3

Kopiera eller ladda ner

Klicka på Kopiera för att lägga den avkodade texten på ditt urklipp, eller på Ladda ner för att spara den som en .txt-fil. Använd Rensa i indatapanelen för att börja om. För att gå åt andra hållet, hoppa över till URL-kodaren.

När Du Faktiskt Skulle Använda Det Här

Läsa vad som faktiskt finns i en frågeparameter

En URL som ?customer=Ava%20Chen&tag%5B0%5D=red är svår att skanna med procentkoderna kvar. Klistra in ett enskilt värde här så får du tillbaka Ava Chen eller tag[0], vilket gör det uppenbart om parametern är vad du förväntade dig. För att bryta ner en hel URL gör URL-parsern frågeparametrar automatiskt.

Felsöka dubbelkodade värden

Du klistrar in Ava%2520Chen, avkodar en gång, får Ava%20Chen. Det extra lagret är beviset — någonstans har en proxy, ett ramverk eller ett bibliotek kodat värdet en andra gång. Avkoda igen för att få den riktiga strängen. OAuth-specifikationer är ofta boven, eftersom redirect_uri-värden ofta passerar lager som var och en hjälpsamt kodar dem igen.

Granska webhook- och analysverktygs-URL:er från loggar

När något går fel i produktion är URL:en i åtkomstloggen vanligen helt kodad — %7B%22event%22%3A%22signup%22%7D istället för den JSON som webhooken faktiskt skickade. Klistra in den här och du får tillbaka {"event":"signup"}, vilket faktiskt går att läsa.

Avkoda en magic link eller URL för lösenordsåterställning

När en kund som Marco Rivera säger "återställningslänken är trasig" innehåller länken en token, ett mejl och ett omdirigeringsmål — alla procentkodade. Att avkoda den misstänkta parametern visar om mejlet är rätt adress, om token överlevde manglingen från en mejlklient, eller om omdirigerings-URI:n blev avhuggen.

Vanliga Frågor

Vad händer med felformaterad indata som ett ensamt % eller %G1?

Den inbyggda decodeURIComponent kastar ett URIError: URI malformed på en sekvens som inte är ett giltigt %XX hex-par. Den här sidan fångar det och skriver "Ogiltig kodning: ..." i utdatapanelen istället för att krascha. De vanligaste orsakerna är ett vilset bokstavligt % som borde ha varit %25, eller en kopiera-klistra-in som tappade en avslutande hex-siffra.

Hur ser jag om min indata är dubbelkodad?

Avkoda en gång. Om utdatan fortfarande har %-tecken (särskilt %20, %2F, %3A) och var tänkt att vara vanlig text, kodades den två gånger. Avkoda utdatan från första avkodningen. Tre varv är ovanligt men möjligt — innebär oftast en kedja av tre olika tjänster där var och en kodade samma värde.

Och plus-tecken — ska de avkodas till mellanslag?

Inte med decodeURIComponent — den lämnar + ifred. Konventionen +-som-mellanslag tillhör application/x-www-form-urlencoded (HTML-formulärinskickningar), inte allmän URL-procentkodning. Om din indata kommer från en formulärbody och har + för mellanslag, kör .replace(/\+/g, "%20") först, sedan avkoda. WHATWG-specifikationen för application/x-www-form-urlencoded beskriver denna tvåsmakssituation.

Klarar den round-trip för Unicode och emoji korrekt?

Ja. Procentkodade flerbyte UTF-8-sekvenser (t.ex. %E2%9C%85 för en bock, %F0%9F%9A%80 för en raket) avkodas direkt tillbaka till originaltecknen. Det enda sättet detta misslyckas är om kodaren använde en icke-UTF-8-teckenuppsättning, vilket moderna system inte gör.

Skickas indatan jag klistrar in här någonstans?

Nej. Avkodningen körs helt i din webbläsare. Inget nätverksanrop, ingen serverlogg, inget lämnar din maskin. Tokens, mejl, signerade URL:er — alla säkra att klistra in.

Hur stor sträng kan jag avkoda här?

Det finns ett tak på 256 KB för indata. Har du hundratals KB procentkodad text har du nästan säkert en payload som borde avkodas på serversidan istället för att klistras in i ett verktyg — kodade payloads i den storleken indikerar vanligen ett missbruk av URL-kodning för ett jobb som vill ha base64 eller en request body.

Andra URL- och Kodningsverktyg

Avkodning är en operation. Här är vad som naturligt parar sig med det: