URL encode / decode
Tímto nástrojem zakódujete text pro použití v URL (tzv. percent-encoding) a stejně snadno ho dekódujete zpět. Znaky, které mají v adrese zvláštní význam nebo se v ní nesmí objevit – mezera, diakritika, &, ?, =, / a další – se nahradí bezpečným zápisem %XX. Hodí se pro parametry odkazů, API dotazy i ladění. Vše běží ve vašem prohlížeči, text se nikam neodesílá.
Jak URL encode funguje
URL smí obsahovat jen omezenou sadu znaků. Písmena A–Z a a–z, číslice 0–9 a několik znaků jako - _ . ! ~ * ' ( ) se přenášejí beze změny. Všechno ostatní – mezera, česká diakritika, oddělovače &, =, ?, #, / – se musí zakódovat, aby prohlížeč nebo server nezaměnil obsah za řídicí znak adresy.
Kódování funguje tak, že se každý takový znak nejprve převede na jeden nebo více bajtů v kódování UTF-8 a každý bajt se zapíše jako znak procenta následovaný dvěma šestnáctkovými číslicemi. Mezera se tak stane %20, znak & se stane %26 a písmeno č (dva bajty v UTF-8) se stane %C4%8D. Dekódování je přesně opačný postup: sekvence %XX se čtou zpět na bajty a z nich se poskládá původní text.
Tento nástroj používá standardní funkce prohlížeče encodeURIComponent a decodeURIComponent. Kóduje se komponenta URL, tedy jednotlivá hodnota (například jeden parametr), nikoli celá adresa – proto se zakódují i znaky /, ? a &, které by jinak strukturu adresy rozdělily. Pozor: mezera se převádí na %20, ne na +; znaménko + jako mezeru používá jen starší formát formulářů application/x-www-form-urlencoded.
Jak URL encode / decode použít
- Do horního pole vložte text nebo hodnotu, kterou chcete vložit do URL.
- Klikněte na Zakódovat pro převod na percent-encoding, nebo na Dekódovat, pokud chcete zakódovaný řetězec vrátit do čitelné podoby.
- Výsledek se objeví ve spodním poli, odkud ho zkopírujete.
Konkrétní příklad převodu (zakódování):
| Vstup | Výstup |
|---|---|
| káva & čaj | k%C3%A1va%20%26%20%C4%8Daj |
| a=1&b=2 | a%3D1%26b%3D2 |
| Praha 1 | Praha%201 |
Dekódování jde opačně: z k%C3%A1va%20%26%20%C4%8Daj dostanete zpět káva & čaj.
K čemu se URL encoder hodí
Nejčastěji ho využijete, když skládáte odkaz s parametrem, jehož hodnota obsahuje mezery, diakritiku nebo speciální znaky – typicky vyhledávací dotaz, jméno, e-mail nebo cestu. Bez zakódování by se odkaz „rozbil" na prvním & nebo mezeře. Ocení ho vývojáři při volání API, testeři ladící query stringy i lidé, kteří potřebují rozluštit, co se skrývá za dlouhou zakódovanou adresou z prohlížeče.
Percent-encoding není šifrování ani zabezpečení – je to jen reverzibilní přepis, který kdokoli okamžitě dekóduje zpět. Neslouží ke skrytí dat, jen k jejich bezpečnému přenosu v adrese. Protože celý převod probíhá lokálně ve vašem prohlížeči, můžete přes nástroj bez obav prohnat i citlivější řetězce – vložený text nikdy neopustí vaše zařízení a nikam se neukládá.
Časté dotazy
Jaký je rozdíl mezi encodeURIComponent a encodeURI?
encodeURIComponent zakóduje i oddělovače adresy jako <code>/</code>, <code>?</code>, <code>&</code> a <code>=</code>, takže je vhodný pro jednu hodnotu (komponentu) uvnitř URL. encodeURI naopak tyto znaky nechává, protože kóduje celou adresu. Tento nástroj používá variantu pro komponentu.
Proč se mezera převádí na %20 a ne na +?
Standardní percent-encoding kóduje mezeru jako <code>%20</code>. Znaménko <code>+</code> jako mezeru používá jen starší formát odesílání formulářů (application/x-www-form-urlencoded) v query stringu. Pokud potřebujete <code>+</code>, musíte mezery nahradit ručně.
Podporuje nástroj českou diakritiku a emoji?
Ano. Znaky s diakritikou i emoji se převedou na bajty v kódování UTF-8 a každý bajt se zapíše jako <code>%XX</code>. Písmeno „č" tak vznikne jako <code>%C4%8D</code>. Při dekódování se text vrátí přesně do původní podoby.
Které znaky se nezakódují?
Beze změny zůstávají písmena <code>A–Z</code> a <code>a–z</code>, číslice <code>0–9</code> a znaky <code>- _ . ! ~ * ' ( )</code>. Všechny ostatní znaky včetně mezery a diakritiky se převedou na zápis <code>%XX</code>.
Proč mi dekódování hlásí chybu?
Dekódování selže, když vstup obsahuje neplatnou sekvenci – například <code>%</code> bez dvou platných šestnáctkových číslic za ním (třeba <code>%ZZ</code> nebo osamocené <code>%</code>). Zkontrolujte, že je řetězec kompletní a nebyl při kopírování porušen.
Je percent-encoding to samé jako šifrování?
Ne. Jde o veřejný a plně reverzibilní přepis, který kdokoli okamžitě vrátí zpět. Neposkytuje žádnou ochranu ani utajení – slouží jen k tomu, aby data prošla adresou bez poškození její struktury.
Odesílá nástroj můj text na server?
Ne. Kódování i dekódování probíhá výhradně ve vašem prohlížeči pomocí vestavěných funkcí JavaScriptu. Vložený text nikam neodchází a nikde se neukládá.
Můžu zakódovat celou URL najednou?
Můžete, ale nástroj kóduje hodnotu jako komponentu, takže zakóduje i <code>:</code>, <code>/</code> a <code>?</code>, které tvoří strukturu adresy. Pro vložení do parametru je to správně; pro zachování struktury celé adresy zakódujte jen jednotlivé hodnoty parametrů.
Zdroje a standardy
📅 Naposledy aktualizováno: 16. 7. 2026