Preskočiť na obsah

URL enkodér a dekodér

Vložte text alebo celú adresu a hneď uvidíte zakódovanú alebo čitateľnú verziu. Hodí sa na odkazy s medzerami, diakritikou či znakom &, na parametre pre API aj na rozlúštenie dlhých adries.

Text sa nikam neodosiela, všetko sa spracúva vo vašom prehliadači.

Ako funguje URL kódovanie

URL adresa nie je obyčajná veta. Niektoré znaky v nej majú vlastný význam: otáznik začína parametre, znak & ich oddeľuje a mriežka označuje miesto na stránke. Medzera ani diakritika sa do adresy priamo písať nemajú. URL kódovanie, po anglicky URL encoding alebo percent-encoding, preto takéto znaky prepíše na znak % a dve šestnástkové číslice. Medzera sa zmení na %20, znak & na %26 a písmeno á na %C3%A1, lebo v UTF-8 zaberá dva bajty.

Kde sa URL enkodér hodí

  • keď skladáte odkaz s vyhľadávaným výrazom alebo filtrom
  • keď parameter obsahuje medzeru, diakritiku, znak & alebo otáznik
  • keď chcete rozlúštiť dlhú adresu z e-mailu, reklamy či vyhľadávača
  • keď pripravujete hodnoty pre API, formulár alebo query string
  • keď zisťujete, prečo sa odkaz po vložení pokazil

Príklady

Takto vyzerajú bežné texty pred zakódovaním a po ňom:

Vyhľadávaný 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%A9%20%C5%A1aty
Hodnota so znakmi + a =
Vstup
1+1=2
Výstup
1%2B1%3D2
Celá adresa
Vstup
https://example.com/cenník služieb?q=káva
Výstup
https://example.com/cenn%C3%ADk%20slu%C5%BEieb?q=k%C3%A1va

Celá adresa alebo len jej časť

Keď vložíte celú adresu so začiatkom https://, enkodér zachová jej štruktúru a zakóduje len medzery, diakritiku a ďalšie nepovolené znaky. Ak vložíte len hodnotu, napríklad vyhľadávaný výraz, zakóduje aj znaky &, ?, / či =, aby ich prehliadač nepovažoval za súčasť adresy. Hodnotu parametra preto zakódujte samostatne a až potom ju vložte do odkazu.

Medzera ako %20 alebo +

Medzera sa v adresách zapisuje dvoma spôsobmi. Podľa štandardu je to %20, formuláre a vyhľadávače ako Google však v parametroch používajú znak +. Enkodér zapisuje medzeru vždy ako %20, ktorému rozumie každý server. Pri dekódovaní prečíta + v parametroch ako medzeru a skutočný znak plus spozná podľa zápisu %2B.

FAQ

Čo je URL kódovanie?

URL kódovanie, známe aj ako percent-encoding, zapisuje znaky, ktoré v adrese nemôžu stáť priamo, pomocou znaku % a dvoch šestnástkových číslic. Medzera sa zmení na %20, znak & na %26 a písmená s diakritikou na dvojicu takých kódov, napríklad á na %C3%A1.

Prečo sa medzera niekde zapisuje ako %20 a inde ako +?

%20 je zápis podľa štandardu URL a funguje všade. Znak + ako medzeru používajú HTML formuláre a vyhľadávače, ale len v parametroch za otáznikom. Tento enkodér preto zapisuje medzeru ako %20 a pri dekódovaní rozumie obom zápisom.

Môžem zakódovať celú URL adresu?

Áno. Ak adresa začína napríklad https://, nástroj ju rozpozná a zachová znaky ako /, ?, & a =, aby odkaz fungoval. Zakóduje len medzery, diakritiku a ostatné nepovolené znaky. Ak chcete celú adresu vložiť ako hodnotu parametra, napríklad do presmerovania, kliknite pod výsledkom na Zakódovať ako hodnotu parametra.

Prečo sa mi pri dekódovaní zobrazí chyba?

Za každým znakom % musia nasledovať dve šestnástkové číslice, teda znaky 0 až 9 alebo A až F. Chybu spôsobí aj neúplne skopírovaná adresa, napríklad keď z kódu %C3%A1 ostane len %C3. Ak má text obsahovať samotný znak percenta, musí byť zakódovaný ako %25.

Zhoduje sa výsledok s PHP alebo JavaScriptom?

Pri kódovaní hodnôt sa výsledok zhoduje s funkciou rawurlencode v PHP. JavaScriptová funkcia encodeURIComponent nechá bez zmeny znaky ! ' ( ) *, tento nástroj ich zakóduje tiež, čo vyžadujú napríklad podpisy OAuth. Pri dekódovaní sa správa ako urldecode v PHP, teda číta + ako medzeru.

Odosiela sa môj text na server?

Nie. Kódovanie aj dekódovanie prebieha priamo vo vašom prehliadači a text neopustí váš počítač.

Prečo je URL kódovanie dôležité?

Prehliadač a server musia presne vedieť, kde končí adresa a kde začína hodnota. Ak napríklad hľadáte káva & čaj a znak & nezakódujete, server ho pochopí ako začiatok ďalšieho parametra a dostane len slovo „káva“.