URL enkoder / dekoder
Kodirajte ili dekodirajte URL-ove i upitne nizove.
Što je URL kodiranje?
URL kodiranje (naziva se i percent-encoding) je mehanizam za pretvorbu znakova koji nisu dopušteni u URL-u u siguran heksadecimalni format. Svaki nesiguran znak zamjenjuje se postotnim znakom praćenim dvjema heksadecimalnim znamenkama koje predstavljaju njegov ASCII kod. Na primjer, razmak postaje %20, ampersand postaje %26, a ljestve postaju %23.
URL-ovi mogu sadržavati samo ograničeni skup znakova definiran RFC-om 3986: slova (A–Z, a–z), znamenke (0–9) i nekoliko posebnih znakova (- _ . ~ ! * ' ( )). Svaki drugi znak — uključujući razmake, ne-ASCII slova i rezervirane znakove poput & = ? # — mora biti percent-kodiran prije uključivanja u URL.
Kada trebate kodirati URL?
- Prosljeđivanje posebnih znakova u parametrima upitnog niza (npr. ?q=hello%20world).
- Kodiranje podataka obrazaca poslanih putem HTTP POST s vrstom sadržaja application/x-www-form-urlencoded.
- Programsko konstruiranje URL-ova API zahtjeva s korisničkim unosom.
- Ugrađivanje URL-ova unutar drugih URL-ova (npr. parametri preusmjeravanja).
- Uključivanje Unicode znakova (naglašenih slova, emojija, CJK znakova) u URL-ove.
Kodiranje nasuprot dekodiranju
Kodiranje pretvara obični tekst u URL-siguran niz zamjenom nesigurnih znakova percent-kodiranim ekvivalentima. Dekodiranje obrće taj postupak, pretvarajući percent-kodirane sekvence natrag u originalne znakove. Ovaj alat omogućava prebacivanje između smjerova kodiranja i dekodiranja jednim klikom.
Kako koristiti ovaj alat
Zalijepite ili upišite tekst u polje unosa. Odaberite način kodiranja ili dekodiranja. Izlaz se ažurira trenutačno. Kliknite gumb za zamjenu kako biste obrnuli smjer koristeći trenutni izlaz kao novi unos. To je korisno kada trebate kodirati niz, a zatim provjeriti rezultat dekodiranjem natrag.
Znakovi koji su kodirani
Ovaj alat koristi JavaScript funkciju encodeURIComponent(), koja kodira sve znakove osim: A–Z, a–z, 0–9 i nerezerviranih znakova - _ . ! ~ * ' ( ). Ovo je ispravno kodiranje za vrijednosti parametara upita i podatke obrazaca. Slična funkcija encodeURI() manje je agresivna i čuva znakove poput : / ? # koji imaju značenje u strukturi URL-a.
Česte greške pri URL kodiranju
Najčešća greška je dvostruko kodiranje — kodiranje niza koji je već kodiran, pretvarajući %20 u %2520. To kvari URL-ove i zbunjuje poslužitelje. Uvijek provjerite je li vaš unos već kodiran prije primjene kodiranja. Još jedna greška je korištenje encodeURI() kad je potreban encodeURIComponent(), što ostavlja & i = nekodiranim u vrijednostima parametara.
Nekodiranje korisničkog unosa prije umetanja u URL-ove je sigurnosna ranjivost. Nekodirani korisnički unos može ubacivati dodatne parametre upita, lomiti raščlanjivanje URL-a ili omogućavati napade ubacivanjem. Uvijek kodirajte vrijednosti koje pruža korisnik pri programskom konstruiranju URL-ova.
Praktični savjeti
U web razvoju, većina okvira automatski rukuje URL kodiranjem u slanju obrazaca i HTTP klijentskim bibliotekama. Ručno kodiranje obično je potrebno pri dinamičkom konstruiranju URL-ova u JavaScript-u, pri prosljeđivanju podataka u URL fragmentima ili pri otklanjanju grešaka u API pozivima koji uključuju posebne znakove.
Često postavljana pitanja
Koja je razlika između %20 i + za razmake?
Oba predstavljaju razmake, ali u različitim kontekstima. %20 je standardno URL kodiranje za razmake i radi posvuda. Znak + predstavlja razmake samo u upitnim nizovima koristeći format application/x-www-form-urlencoded (slanje HTML obrazaca). U nedoumici, koristite %20.
Trebam li kodirati UTF-8 znakove?
Da. Ne-ASCII znakovi (naglašena slova, emojiji, kineski znakovi itd.) moraju biti UTF-8 kodirani, a zatim percent-kodirani za uključivanje u URL-ove. JavaScript funkcija encodeURIComponent() automatski rukuje oba koraka, pretvarajući znakove poput é u %C3%A9.