URL dekódování (procentuální dekódování) je opakem URL kódování: převádí procentuálně zakódované sekvence zpět na jejich původní znaky. Každý výskyt znaku procenta následovaný dvěma hexadecimálními číslicemi (%XX) je nahrazen bajtem, který XX představuje. Více po sobě jdoucích zakódovaných bajtů se znovu spojí, aby byl rekonstruován původní znak UTF-8.
URL dekódování je každodenní úkol pro vývojáře pracující s API, webovým scrapingem, analýzou logů a autentizačními toky. Zakódované URL jsou čitelné pro stroje, ale pro lidi neprůhledné — jejich dekódování okamžitě odhalí skutečné cesty, vyhledávací dotazy, cíle přesměrování a hodnoty parametrů.
Proč tento nástroj používat?
Rychle porozumějte jakékoli procentuálně zakódované URL nebo řetězci dotazu — není potřeba konzole prohlížeče, nic se neposílá na server.
⚡
Okamžité dekódování
Vložte jakoukoli zakódovanou URL nebo parametr a okamžitě uvidíte čitelnou verzi. Skvělé pro ladění API požadavků a souborů logů.
🛡️
Obnovení po chybě
Pro vstupy obsahující staré znaky Latin-1 zakódované procentuálně, které by selhaly při decodeURIComponent, automaticky využije starší unescape().
🔒
Pouze na straně klienta
Veškeré dekódování probíhá lokálně ve vašem prohlížeči. Tokeny, hesla a soukromé parametry dotazu nikdy neopustí vaše zařízení.
🔁
Plná podpora URL
Dekódujte celé URL nebo jednotlivé hodnoty parametrů. Nástroj zvládá jak standardní mezery %20, tak zachovává znaky + jako doslovné znaky plus.
Jak používat tento online dekodér URL
Žádný účet, žádná instalace. Vložte procentuálně zakódovaný řetězec do vstupního pole a dekódovaný výsledek se okamžitě zobrazí. Vše běží ve vašem prohlížeči — vaše data nikdy neopustí vaše zařízení.
1
Vložte zakódovanou URL nebo řetězec
Zkopírujte libovolný procentuálně zakódovaný řetězec — URL z adresního řádku, parametr dotazu ze serverových logů, odpověď API nebo cíl přesměrování — a vložte jej do vstupního pole.
2
Automatická detekce formátu
Dekodér automaticky zpracovává jak procentuální kódování %XX, tak + jako mezeru (application/x-www-form-urlencoded). Není třeba ručně zadávat formát kódování.
3
Zkontrolujte dekódovaný výstup
Čitelný text se okamžitě zobrazí. Pokud vstup obsahoval vnořené kódování (dvojitě zakódované řetězce), dekodér řeší jednu vrstvu najednou. Při chybně formátovaných sekvencích %XX se zobrazí chyba.
4
Zkopírujte nebo znovu zakódujte
Klikněte na Kopírovat, abyste převzali dekódovaný řetězec. Potřebujete jej znovu zakódovat s jiným nastavením? Přepněte se jedním kliknutím na nástroj URL Encode.
Jak dekódování funguje
Dekodér prochází vstup a hledá sekvence %, převádí každou skupinu dvou hexadecimálních číslic na hodnotu bajtu, seskupuje po sobě jdoucí bajtové sekvence a interpretuje je jako UTF-8, čímž vytváří výsledné znaky Unicode.
Rychlý přehled nejčastěji se vyskytujících procentuálně zakódovaných sekvencí:
Zakódováno
Znak
Kde se vyskytuje
%20
space
path segments, query values
%2B
+
literal plus (not a space in query)
%2F
/
slash inside a path component
%3F
?
literal question mark in a value
%23
#
literal hash in a value
%26
&
literal ampersand in a value
%3D
=
literal equals sign in a value
%40
@
at sign in username / password
%3A
:
colon inside a path segment
%25
%
literal percent sign
%2C
,
comma in path or query
%5B
[
opening bracket
%5D
]
closing bracket
%7B
{
curly brace in template literals
%7D
}
curly brace in template literals
Běžné případy použití
Ladění API požadavků
Zkopírujte URL ze síťových logů v DevTools prohlížeče a dekódujte ji, abyste viděli skutečné hodnoty parametrů dotazu — obzvláště užitečné, když automatizované nástroje nebo knihovny procentuálně zakódovaly parametry.
Čtení souborů logů
Přístupové logy webových serverů a aplikační logy ukládají URL v zakódované podobě. Dekódujte je, abyste nalezli skutečně požadované cesty, vyhledávací dotazy a hodnoty parametrů.
Kontrola přesměrování
OAuth callbacky, SSO přesměrování a URL pro sledování odkazů často obsahují silně zakódované parametry redirect_uri nebo next. Dekódujte URL, abyste zjistili zamýšlený cíl.
Zpracování webhook payloadů
Těla webhooků odeslaných jako application/x-www-form-urlencoded (Stripe, Twilio, GitHub) přicházejí jako procentuálně zakódované řetězce. Dekódujte je, abyste přečetli skutečné hodnoty polí.
Extrakce vyhledávacích dotazů
Analytické URL a referrer hlavičky obsahují původní vyhledávací dotaz uživatele procentuálně zakódovaný v parametru q=. Dekódujte pro zobrazení nebo analýzu skutečných vyhledávacích výrazů.
Reverzní inženýrství URL
Při integraci s API třetích stran nebo scrapingu se setkáte s URL obsahujícími zakódované segmenty cest a parametry. Dekódujte je, abyste pochopili strukturu URL a mohli reprodukovat požadavky.
Časté chyby
Nejčastější chyby při dekódování procentuálně zakódovaných řetězců:
✕
Záměna + a %20
V datech application/x-www-form-urlencoded (odesílání HTML formulářů) + představuje mezeru. Ale v surovém URL cestě nebo v hodnotě zakódované pomocí encodeURIComponent je + doslova znakem plus. decodeURIComponent nepřevádí + na mezeru — pro data formulářů použijte URLSearchParams nebo unquote_plus.
✕
Dvojitě zakódované řetězce
Pokud byl řetězec zakódován dvakrát, jedno dekódování stále ponechá znaky procenta: %2520 se dekóduje na %20, nikoli na mezeru. Dekódujte podruhé, abyste získali původní hodnotu. Dávejte na to pozor v logách, proxy serverech a middlewaru, který znovu kóduje již zakódovaná data.
✕
Chybně formátované procentuální sekvence
Samostatné % nebo % následované nehexadecimálními znaky (např. %GG nebo % 2) je neplatné a vyvolá URIError. Vždy ověřte vstup nebo obalte dekódování do bloku try/catch.
✕
Nesoulad kódování (Latin-1 vs. UTF-8)
Staré systémy (PHP's urlencode, klasický ASP) kódovaly znaky jako bajty Latin-1. Řetězec zakódovaný jako Latin-1 se může nesprávně dekódovat pomocí dekodéru UTF-8. Pokud vidíte zkomolené znaky, zkuste starší cestu přes unescape() nebo zjistěte původní kódování.
Ukázky kódu
Jak URL-dekódovat řetězce v populárních jazycích a prostředích:
JavaScript (browser / Node.js)
// Decode a percent-encoded component
decodeURIComponent('hello%20world%20%26%20more') // → "hello world & more"
// Decode a full URL (leaves structure characters encoded)
decodeURI('https://example.com/path?q=hello%20world') // → "https://example.com/path?q=hello world"
// Parse a query string (handles + as space automatically)
const params = new URLSearchParams('q=hello+world&lang=en')
params.get('q') // → "hello world"
const url = new URL('https://example.com/search?q=hello%20world%20%26%20more')
url.searchParams.get('q') // → "hello world & more"
url.pathname // → "/search"
CLI (bash)
# Decode with Python one-liner
python3 -c "from urllib.parse import unquote; print(unquote('hello%20world'))"
# Decode with Node.js
node -e "console.log(decodeURIComponent('hello%20world%20%26'))"
Dekodér URL vs. alternativy
Několik nástrojů dokáže dekódovat procentuálně zakódované řetězce, ale liší se v přehlednosti, soukromí a pohodlí.
Tento nástroj
Funguje v prohlížeči, okamžitě, soukromě. Zpracovává kódování %XX, + jako mezeru, Unicode a poškozené sekvence. Žádná data nejsou odeslána na žádný server.
Adresní řádek prohlížeče
Prohlížeče dekódují URL pro zobrazení, ale ne vždy zcela — některé zakódované znaky zůstávají v adresním řádku viditelné. Není užitečné pro kontrolu hodnot jednotlivých parametrů.
DevTools / curl -v
DevTools prohlížeče a curl zobrazují surové a dekódované URL v síťových požadavcích. Užitečné pro ladění, ale vyžaduje přepínání nástrojů a vědět, kde hledat.
Nejčastější dotazy
Jaký je rozdíl mezi decodeURIComponent a decodeURI?
decodeURIComponent dekóduje všechny procentuálně zakódované sekvence včetně rezervovaných znaků (%2F → /, %3F → ? atd.). decodeURI dekóduje pouze sekvence, které by nevyprodukovaly znak se speciálním významem v URL — ponechává %2F, %3F, %23 a další strukturální znaky zakódované. Používejte decodeURIComponent pro hodnoty parametrů; decodeURI používejte pouze tehdy, když máte celou URL a chcete zachovat její strukturu.
Proč se zobrazuje URIError: malformed URI?
Tato chyba z decodeURIComponent nastává, když vstup obsahuje % nenásledované dvěma platnými hexadecimálními číslicemi, nebo když je vícebajtová sekvence UTF-8 neúplná (např. %E2 bez následného %82%AC). Odstraňte nebo escapujte osamocené znaky procenta před dekódováním.
Zpracovává dekódování + jako mezeru?
Ne — decodeURIComponent zachází s + jako s doslovným znakem plus, nikoli mezerou. Konvence + → mezera platí pouze pro data application/x-www-form-urlencoded (odesílání HTML formulářů). Pro dekódování dat formuláře použijte URLSearchParams (prohlížeč/Node) nebo urllib.parse.unquote_plus (Python).
Je URL dekódování na straně klienta bezpečné?
Ano — URL dekódování je čistá transformace bez síťových požadavků. Všechny moderní prohlížeče obsahují decodeURIComponent a decodeURI jako nativní funkce. Tento nástroj provádí dekódování výhradně ve vašem prohlížeči; žádná data se nikam neposílají.
Jak dekóduji URL, která byla zakódována vícekrát?
Dekódujte ji vícekrát, dokud se výstup nestabilizuje (nebudou se řešit žádné další sekvence %). To nastane, když je již zakódovaná URL předána dalšímu kodéru. Každý průchod dekódováním odstraní jednu vrstvu kódování.
Co představuje %XX?
Dva znaky za % jsou hexadecimální číslice představující hodnotu jednoho bajtu (00–FF). Pro znaky ASCII je tento bajt ASCII kód znaku: %41 = 65 = 'A'. Pro znaky mimo ASCII představuje více sekvencí %XX bajtovou sekvenci UTF-8 daného znaku: znak eura € je %E2%82%AC (tři bajty: 0xE2, 0x82, 0xAC).
Jaké kódování používá prohlížeč při odesílání HTML formulářů?
HTML formuláře s method=GET přidávají pole do URL pomocí kódování application/x-www-form-urlencoded, kde jsou mezery nahrazeny + místo %20 a ostatní speciální znaky jsou procentuálně zakódovány. Možnost + → mezera v nástroji URL Decode zpracovává tento formát. Formuláře s method=POST a enctype=application/x-www-form-urlencoded používají stejné schéma v těle požadavku.
Existuje limit velikosti pro dekódování?
Žádný limit na straně serveru — nástroj běží zcela ve vašem prohlížeči. Praktické limity závisí na paměti vašeho prohlížeče. Pro velmi dlouhé zakódované řetězce nebo dávkové zpracování použijte decodeURIComponent ve skriptu.