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.
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:
káva & čaj
k%C3%A1va%20%26%20%C4%8Daj
letní šaty
letn%C3%AD%20%C5%A1aty
1+1=2
1%2B1%3D2
https://example.com/ceník služeb?q=káva
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.
Související nástroje
Další nástroje pro vývojáře: kódování, hashe, identifikátory a formáty.
FAQ
Co je URL kódování?
%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?
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?
% 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?
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.