Přeskočit na obsah

URL enkodér a dekodér

Vložte text nebo celou adresu a hned uvidíte zakódovanou nebo čitelnou verzi. Hodí se na odkazy s mezerami, diakritikou či znakem &, na parametry pro API i na rozluštění dlouhých adres.

Text se nikam neodesílá, vše se zpracovává ve vašem prohlížeči.

Jak funguje URL kódování

URL adresa není obyčejná věta. Některé znaky v ní mají vlastní význam: otazník začíná parametry, znak & je odděluje a mřížka označuje místo na stránce. Mezera ani diakritika se do adresy přímo psát nemají. URL kódování, anglicky URL encoding nebo percent-encoding, proto takové znaky přepíše na znak % a dvě šestnáctkové číslice. Mezera se změní na %20, znak & na %26 a písmeno á na %C3%A1, protože v UTF-8 zabírá dva bajty.

Kde se URL enkodér hodí

  • když skládáte odkaz s hledaným výrazem nebo filtrem
  • když parametr obsahuje mezeru, diakritiku, znak & nebo otazník
  • když chcete rozluštit dlouhou adresu z e-mailu, reklamy či vyhledávače
  • když připravujete hodnoty pro API, formulář nebo query string
  • když zjišťujete, proč se odkaz po vložení rozbil

Příklady

Takto vypadají běžné texty před zakódováním a po něm:

Hledaný výraz
Vstup
káva & čaj
Výstup
k%C3%A1va%20%26%20%C4%8Daj
Text s diakritikou
Vstup
letní šaty
Výstup
letn%C3%AD%20%C5%A1aty
Hodnota se znaky + a =
Vstup
1+1=2
Výstup
1%2B1%3D2
Celá adresa
Vstup
https://example.com/ceník služeb?q=káva
Výstup
https://example.com/cen%C3%ADk%20slu%C5%BEeb?q=k%C3%A1va

Celá adresa, nebo jen její část

Když vložíte celou adresu začínající https://, enkodér zachová její strukturu a zakóduje jen mezery, diakritiku a další nepovolené znaky. Pokud vložíte jen hodnotu, například hledaný výraz, zakóduje i znaky &, ?, / nebo =, aby je prohlížeč nepovažoval za součást adresy. Hodnotu parametru proto zakódujte zvlášť a teprve potom ji vložte do odkazu.

Mezera jako %20, nebo +

Mezera se v adresách zapisuje dvěma způsoby. Podle standardu je to %20, formuláře a vyhledávače jako Google ale v parametrech používají znak +. Enkodér zapisuje mezeru vždy jako %20, kterému rozumí každý server. Při dekódování přečte + v parametrech jako mezeru a skutečné plus pozná podle zápisu %2B.

FAQ

Co je URL kódování?

URL kódování, známé také jako percent-encoding, zapisuje znaky, které v adrese nemohou stát přímo, pomocí znaku % a dvou šestnáctkových číslic. Mezera se změní na %20, znak & na %26 a písmena s diakritikou na dvojici takových kódů, například á na %C3%A1.

Proč se mezera někde zapisuje jako %20 a jinde jako +?

%20 je zápis podle standardu URL a funguje všude. Znak + jako mezeru používají HTML formuláře a vyhledávače, ale jen v parametrech za otazníkem. Tento enkodér proto zapisuje mezeru jako %20 a při dekódování rozumí oběma zápisům.

Můžu zakódovat celou URL adresu?

Ano. Pokud adresa začíná například https://, nástroj ji rozpozná a zachová znaky jako /, ?, & a =, aby odkaz fungoval. Zakóduje jen mezery, diakritiku a ostatní nepovolené znaky. Pokud chcete celou adresu vložit jako hodnotu parametru, například do přesměrování, klikněte pod výsledkem na Zakódovat jako hodnotu parametru.

Proč se mi při dekódování zobrazí chyba?

Za každým znakem % musí následovat dvě šestnáctkové číslice, tedy znaky 0 až 9 nebo A až F. Chybu způsobí i neúplně zkopírovaná adresa, například když z kódu %C3%A1 zůstane jen %C3. Pokud má text obsahovat samotný znak procenta, musí být zakódovaný jako %25.

Shoduje se výsledek s PHP nebo JavaScriptem?

Při kódování hodnot se výsledek shoduje s funkcí rawurlencode v PHP. JavaScriptová funkce encodeURIComponent nechá beze změny znaky ! ' ( ) *, tento nástroj je zakóduje také, což vyžadují například podpisy OAuth. Při dekódování se chová jako urldecode v PHP, tedy čte + jako mezeru.

Odesílá se můj text na server?

Ne. Kódování i dekódování probíhá přímo ve vašem prohlížeči a text neopustí váš počítač.

Proč je URL kódování důležité?

Prohlížeč a server musí přesně vědět, kde končí adresa a kde začíná hodnota. Pokud například hledáte káva & čaj a znak & nezakódujete, server ho pochopí jako začátek dalšího parametru a dostane jen slovo „káva“.