Utilia

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.

Način

Kako koristiti URL kodiranje i dekodiranje

  1. Odaberi Kodiraj da tekst pretvoriš u oblik siguran za URL ili Dekodiraj da postotno kodirani tekst vratiš u čitljive znakove.
  2. 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.
  3. Pri dekodiranju podataka iz HTML obrasca ili niza upita uključi Tretiraj + kao razmak da se znakovi + pretvore u razmake.
  4. 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.