Preskočiť na obsah
Technológie 7 min čítania

URL encoding: prečo sa medzery menia na %20

Papierový pás s blokmi prechádza cez mechanický valček

URL adresa nemôže obsahovať každý znak len tak. Pozrite sa, čo je percent-encoding, prečo sa medzera mení na %20 a kedy použiť URL enkodér.

Ak ste niekedy kopírovali odkaz a všimli ste si v ňom znaky ako %20, %C4%8D alebo %3F, narazili ste na URL encoding. Vyzerá to zvláštne, ale nie je to chyba. Je to spôsob, ako sa špeciálne znaky bezpečne zapisujú do URL adries.

Najznámejší príklad je medzera. V bežnom texte ju jednoducho napíšete. V URL adrese však medzera nemá byť zapísaná ako obyčajná medzera, preto sa často zmení na:

%20

Rýchla kontrola odkazu

Zakódujte alebo dekódujte URL za pár sekúnd

Vložte text, parameter alebo časť odkazu a hneď uvidíte bezpečný URL tvar aj čitateľnú verziu.

Prečo URL adresa nemôže obsahovať všetko

URL adresa má svoju štruktúru. Napríklad:

https://example.com/hladat?q=lorem+ipsum&page=2

Niektoré znaky majú v URL špeciálny význam:

  • ? oddeľuje adresu stránky od query parametrov,
  • & oddeľuje jednotlivé parametre,
  • = oddeľuje názov parametra od hodnoty,
  • # označuje časť stránky,
  • / oddeľuje časti cesty,
  • % začína zakódovaný znak.

Ak chcete niektorý z týchto znakov použiť ako obyčajný text v hodnote parametra, musíte ho zakódovať. Inak môže prehliadač alebo server pochopiť URL inak, než ste chceli.

Príklad:

/hladat?q=kava & caj

Toto je problém, pretože & môže byť chápaný ako oddeľovač ďalšieho parametra. Správne zakódovaná hodnota vyzerá takto:

/hladat?q=kava%20%26%20caj

Tu %20 znamená medzeru a %26 znamená znak &.

Čo presne znamená %20

URL encoding sa často volá aj percent-encoding. Funguje tak, že znak nahradí percentom a hexadecimálnym kódom.

Medzera má v ASCII tabuľke hodnotu 32. V šestnástkovej sústave je to 20, preto sa medzera v URL zapíše ako:

%20

Nie je to náhodná skratka. Je to technický zápis znaku, ktorému rozumejú prehliadače, servery aj programovacie jazyky.

Prečo niekedy vidíte plusko namiesto %20

Možno ste si všimli, že v niektorých URL sa medzera nezapíše ako %20, ale ako +:

q=lorem+ipsum

Toto sa často používa v query stringu pri formulárovom kódovaní (application/x-www-form-urlencoded). Typicky pri vyhľadávaní alebo odosielaní formulárov.

Rozdiel je dôležitý:

  • v ceste URL sa medzera bežne kóduje ako %20,
  • v query parametroch sa pri formulárovom zápise môže použiť +,
  • ak chcete zapísať skutočné plusko ako hodnotu, malo by byť zakódované ako %2B.

Príklad:

text=C%2B%2B

Toto znamená C++. Ak by ste napísali len C++ bez správneho kódovania, niektoré systémy môžu pluská pochopiť ako medzery.

Diakritika v URL

URL encoding sa netýka iba medzier. Rieši aj diakritiku a znaky mimo základnej anglickej abecedy.

Napríklad slovenské č sa v UTF-8 zapíše ako dva bajty a v URL môže vyzerať takto:

%C4%8D

Celý text:

káva s mliekom

môže byť v URL zakódovaný ako:

k%C3%A1va%20s%20mliekom

Moderné prehliadače dnes často zobrazia URL krajšie a čitateľnejšie, ale pod povrchom sa pri odosielaní požiadavky stále používa bezpečný kódovaný tvar.

Kedy URL encoding potrebujete

Pri query parametroch

Najčastejšie sa s tým stretnete pri parametroch v URL:

/hladat?q=slovenský text

Bezpečnejšia verzia:

/hladat?q=slovensk%C3%BD%20text

Ak parameter skladáte v JavaScripte, hodnota parametra by sa mala kódovať napríklad cez encodeURIComponent.

Pri API požiadavkách

API endpointy často prijímajú hodnoty v URL. Ak pošlete text s medzerami, diakritikou alebo znakmi ako &, =, ?, výsledok môže byť neplatný alebo nesprávne spracovaný.

Typický príklad:

/api/search?query=meno=Ján & stav=nový

Správne je zakódovať hodnotu parametra:

/api/search?query=meno%3DJ%C3%A1n%20%26%20stav%3Dnov%C3%BD

Pri UTM parametroch

UTM parametre sa často kopírujú do kampaní, e-mailov a reklamných systémov. Ak názov kampane obsahuje medzeru alebo diakritiku, je lepšie ho zakódovať.

Namiesto:

utm_campaign=Jarná kampaň 2026

použite:

utm_campaign=Jarn%C3%A1%20kampa%C5%88%202026

Pri ladení nefunkčných odkazov

Ak odkaz prestane fungovať až po pridaní textu, parametra alebo názvu súboru, často je problém práve v nekódovaných znakoch.

Podozrivé sú hlavne:

  • medzery,
  • diakritika,
  • &,
  • =,
  • ?,
  • #,
  • %,
  • plusko +.

Vtedy pomôže URL enkodér a dekodér. Vložíte text, zakódujete ho a hneď vidíte, ako má vyzerať bezpečný tvar.

Nekódujte vždy celú URL

Toto je častá chyba. Keď máte celú adresu:

https://example.com/hladat?q=kava

a zakódujete ju celú, dostanete:

https%3A%2F%2Fexample.com%2Fhladat%3Fq%3Dkava

To už nie je bežná klikateľná URL adresa. Je to zakódovaný text celej URL.

V praxi väčšinou nekódujete celú adresu, ale iba hodnotu parametra.

Príklad:

const query = encodeURIComponent('káva & čaj');
const url = `/hladat?q=${query}`;

Výsledok:

/hladat?q=k%C3%A1va%20%26%20%C4%8Daj

Rýchla kontrola odkazu

Zakódujte alebo dekódujte URL za pár sekúnd

Vložte text, parameter alebo časť odkazu a hneď uvidíte bezpečný URL tvar aj čitateľnú verziu.

URL encoding a bezpečnosť

URL encoding nie je šifrovanie. Zakódovaný text nie je tajný.

Napríklad:

heslo%3Dtest123

sa dá jednoducho dekódovať späť na:

heslo=test123

URL encoding iba zabezpečuje, aby sa znaky v adrese správne preniesli a pochopili. Neslúži na skrývanie citlivých údajov. Heslá, tokeny ani osobné údaje by ste nemali posielať v URL, ak to nie je nevyhnutné.

Ako zakódovať alebo dekódovať URL

Najjednoduchšie je použiť URL enkodér a dekodér:

  1. Vložte text alebo časť URL.
  2. Kliknite na Zakódovať, ak chcete bezpečný URL tvar.
  3. Kliknite na Dekódovať, ak chcete zistiť, čo zakódovaný text znamená.
  4. Skopírujte výsledok.

Hodí sa to pri práci s API, kampanami, formulármi, webhookmi aj pri obyčajnom debugovaní odkazov.

Časté otázky

Je %20 to isté ako medzera?

Áno. V URL zápise %20 predstavuje medzeru. Prehliadač alebo server si ju pri spracovaní vie preložiť späť na obyčajnú medzeru.

Je plusko rovnaké ako medzera?

Nie vždy. V query stringu pri formulárovom kódovaní sa + často používa ako medzera. Ak však chcete zapísať skutočné plusko, bezpečnejšie je použiť %2B.

Prečo sa diakritika mení na viac znakov?

Pretože znaky ako á, č alebo ň sa v UTF-8 zapisujú pomocou viacerých bajtov. Každý bajt sa potom v URL zapíše vlastným percentuálnym kódom.

Je URL encoding šifrovanie?

Nie. Je to iba technické kódovanie znakov. Každý ho vie spätne dekódovať, takže ho nepoužívajte na skrývanie citlivých informácií.

Na čo slúži generátor náhodných reťazcov
Technológie 6 min čítania

Na čo slúži generátor náhodných reťazcov

Náhodné reťazce sa hodia pri testovaní, dočasných identifikátoroch, tokenoch aj technických poznámkach. Pozrite sa, kedy ich použiť a kedy radšej zvoliť heslo alebo UUID.

Čítať viac
Veľký checklist pred spustením webu: 12 vecí, ktoré treba skontrolovať
Technológie 8 min čítania

Veľký checklist pred spustením webu: 12 vecí, ktoré treba skontrolovať

Pred spustením webu sa oplatí prejsť viac než len dizajn. Skontrolujte texty, odkazy, formuláre, mobil, rýchlosť, HTTPS, analytiku aj zabudnutý Lorem Ipsum.

Čítať viac
Čo je QR kód a ako funguje
QR kódy 7 min čítania

Čo je QR kód a ako funguje

QR kód je štvorcový dvojrozmerný kód, ktorý po naskenovaní otvorí odkaz, WiFi pripojenie, kontakt, udalosť alebo inú uloženú informáciu. Tu je jednoduché vysvetlenie pre bežné použitie.

Čítať viac