URL kodiranje i dekodiranje
Besplatno URL kodiranje i dekodiranje. Postotno kodiraj parametre upita ili cijele URL-ove, dekodiraj nizove %XX i tretiraj + kao razmak. Radi u pregledniku.
Kako koristiti URL kodiranje i dekodiranje
- Odaberi Kodiraj da tekst pretvoriš u oblik siguran za URL ili Dekodiraj da postotno kodirani tekst vratiš u čitljive znakove.
- Pri kodiranju odaberi Način: Komponenta za pojedinačnu vrijednost (poput parametra upita ili dijela putanje) ili Cijeli URL za kodiranje potpune adrese uz očuvanje njezine strukture.
- Pri dekodiranju podataka iz HTML obrasca ili niza upita uključi Tretiraj + kao razmak da se znakovi
+pretvore u razmake. - Zalijepi tekst i kopiraj rezultat. Ako je postotni slijed neispravan, alat prijavljuje pogrešku umjesto da pogađa.
Što je URL kodiranje?
URL-ovi smiju sadržavati samo ograničen skup ASCII znakova. Neki znakovi, poput /, ?, #, & i =, rezervirani su jer razdvajaju dijelove adrese: putanju, niz upita i fragment. Drugi, poput razmaka, navodnika, slova s dijakritikom ili emojija, jednostavno nisu dopušteni. URL kodiranje, zvano i postotno kodiranje, rješava oba problema zamjenom svakog problematičnog bajta znakom % iza kojeg slijede dvije heksadecimalne znamenke.
Tekst se prvo pretvara u UTF-8 bajtove, a svaki se bajt kodira zasebno. Razmak postaje %20, ampersand postaje %26, č (dva bajta u UTF-8) postaje %C4%8D, a emoji 😀 (četiri bajta) postaje %F0%9F%98%80. Nerezervirani znakovi, to jest slova, znamenke i - _ . ~, nikada ne trebaju kodiranje. Hrvatska slova s kvačicama (č, ć, š, ž, đ) stoga u URL-u uvijek postaju nizovi %XX.
Način Komponenta i način Cijeli URL
Odabir pravog načina najvažnija je odluka, a pogrešan odabir klasičan je izvor pogrešaka.
Način Komponenta radi kao JavaScriptov encodeURIComponent. Kodira svaki rezervirani znak, pa se rezultat može sigurno staviti unutar jednog dijela URL-a. Koristi ga za vrijednosti parametara upita, dijelove putanje ili bilo što što je korisnik upisao. Na primjer, pojam za pretraživanje rock & roll postaje rock%20%26%20roll. Da nisi kodirao &, poslužitelj bi roll pročitao kao početak novog parametra.
Način Cijeli URL radi kao encodeURI. Pretpostavlja da je unos već potpuna adresa i čuva znakove koji joj daju strukturu, poput : / ? # & i =, a kodira razmake i znakove izvan ASCII-ja. Koristi ga za sređivanje adrese poput https://example.com/jelovnik čaj?q=kava u https://example.com/jelovnik%20%C4%8Daj?q=kava. Nemoj ga koristiti na pojedinačnim vrijednostima: & unutar vrijednosti ostao bi nekodiran i pokvario bi niz upita.
Dobro pravilo: gradi URL-ove iz dijelova, svaku vrijednost kodiraj u načinu Komponenta, a način Cijeli URL koristi samo za adrese koje dobiješ već sastavljene.
Znak + i kodiranje obrazaca
HTML obrasci poslani s application/x-www-form-urlencoded kodiraju razmake kao + umjesto %20. Zato pretraživački URL-ovi često izgledaju kao ?q=hello+world. Standardno postotno dekodiranje ostavlja + nepromijenjenim, jer je u putanji plus samo plus. Kad dekodiraš niz upita ili podatke obrasca, uključi Tretiraj + kao razmak da dobiješ hello world. Ostavi isključeno za putanje i za vrijednosti u kojima je doslovni + važan, poput telefonskih brojeva ili Base64 podataka. Pravi znak plus u podacima obrasca šalje se kao %2B, pa se u oba slučaja ispravno dekodira.
Privatnost
Kodiranje i dekodiranje izvode se u cijelosti u tvom pregledniku. Ništa što zalijepiš, uključujući URL-ove koji mogu sadržavati tokene, ID-ove sesija ili osobne podatke, ne šalje se na poslužitelj niti se pohranjuje.
Česta pitanja
Zašto dekodiranje ne uspijeva s porukom o neispravnom kodiranju?
Iza % moraju slijediti točno dvije heksadecimalne znamenke, a dobiveni bajtovi moraju činiti ispravan UTF-8. Nizovi poput 100%, %G1 ili skraćenog slijeda %E2%82 ne mogu se pouzdano dekodirati, pa alat prijavljuje problem umjesto da proizvede netočan tekst. Da uključiš doslovni znak postotka, kodiraj ga kao %25.
Koja je razlika između %20 i +?
Oboje može predstavljati razmak, ali u različitim kontekstima. %20 vrijedi posvuda u URL-u. + znači razmak samo u nizovima upita kodiranima kao obrazac; drugdje je doslovni znak plus.
Trebam li kodirati cijeli URL u načinu Komponenta?
Samo ako je cijeli URL sam vrijednost unutar drugog URL-a, na primjer parametar redirect=. U tom slučaju način Komponenta je točno pravi: https://a.com/?x=1 postaje https%3A%2F%2Fa.com%2F%3Fx%3D1.
Zašto je moj tekst kodiran dvaput?
Dvostruko kodiranje događa se kad se već kodirani tekst kodira ponovno, pa %20 postaje %2520. Dekodiraj jednom da provjeriš i pazi da se svaka vrijednost kodira samo u trenutku umetanja u URL.
Skriva li ili štiti URL kodiranje podatke?
Ne. Postotno kodiranje je potpuno reverzibilno i ne pruža nikakvu sigurnost. Osjetljive vrijednosti u URL-ovima mogu završiti u povijesti preglednika i dnevnicima poslužitelja, pa uopće izbjegavaj stavljati tajne u URL-ove.
Slični alati
- Base64 koder i dekoder Besplatni Base64 koder i dekoder s potpunom UTF-8 podrškom i opcijom base64url. Radi u pregledniku, ništa se ne šalje na poslužitelj.
- JSON formater i validator Besplatni JSON formater i validator koji uljepšava, minificira i provjerava JSON u pregledniku, a sintaksne greške prijavljuje s retkom i stupcem.