Utilia

URL kodiranje i dekodiranje

Besplatno URL kodiranje i dekodiranje. Postotno kodiraj parametre upita ili cijele URL-ove, dekodiraj %XX sekvence 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 kodiran tekst vratiš u čitljive znakove.
  2. Pri kodiranju odaberi Način: Dio URL-a za jednu vrijednost (poput parametra upita ili segmenta putanje) ili Cijeli URL za kodiranje kompletne adrese uz očuvanje njene 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 postotna sekvenca neispravna, alat prijavljuje grešku umjesto da pogađa.

Šta je URL kodiranje?

URL-ovi smiju sadržavati samo ograničen skup ASCII znakova. Neki znakovi, poput /, ?, #, & i =, su rezervisani jer razdvajaju dijelove adrese: putanju, niz upita i fragment. Drugi, poput razmaka, navodnika, slova s dijakriticima ili emojija, jednostavno nisu dozvoljeni. URL kodiranje, poznato i kao postotno kodiranje, rješava oba problema tako što svaki problematičan bajt zamjenjuje znakom % iza kojeg slijede dvije heksadecimalne cifre.

Tekst se prvo pretvara u UTF-8 bajtove, a svaki bajt se kodira zasebno. Razmak postaje %20, ampersand postaje %26, é (dva bajta u UTF-8) postaje %C3%A9, a emoji 😀 (četiri bajta) postaje %F0%9F%98%80. Nerezervisani znakovi, to jest slova, cifre i - _ . ~, nikada ne trebaju kodiranje.

Način „Dio URL-a“ naspram načina „Cijeli URL“

Odabir pravog načina je najvažnija odluka, a pogrešan izbor je klasičan izvor grešaka.

Način „Dio URL-a“ radi kao JavaScriptov encodeURIComponent. Kodira svaki rezervisani znak, pa se rezultat može sigurno staviti unutar jednog dijela URL-a. Koristi ga za vrijednosti parametara upita, segmente putanje ili bilo šta što je korisnik upisao. Na primjer, pojam za pretragu rock & roll postaje rock%20%26%20roll. Da nisi kodirao &, server bi roll pročitao kao početak novog parametra.

Način „Cijeli URL“ radi kao encodeURI. Pretpostavlja da je ulaz već kompletna adresa i čuva znakove koji joj daju strukturu, poput : / ? # & i =, a kodira razmake i znakove koji nisu ASCII. Koristi ga da urediš adresu poput https://example.com/café menu?q=tea u https://example.com/caf%C3%A9%20menu?q=tea. Ne koristi ga 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 „Dio URL-a“, a „Cijeli URL“ koristi samo za adrese koje primaš već sastavljene.

Znak + i kodiranje obrazaca

HTML obrasci poslani s application/x-www-form-urlencoded kodiraju razmake kao + umjesto %20. Zato URL-ovi pretrage često izgledaju kao ?q=hello+world. Standardno postotno dekodiranje ostavlja + nepromijenjen, jer je u putanji plus samo plus. Kada dekodiraš niz upita ili podatke obrasca, uključi Tretiraj + kao razmak da dobiješ hello world. Ostavi isključeno za putanje i za vrijednosti kod kojih je doslovni + bitan, poput brojeva telefona 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 radi potpuno u tvom pregledniku. Ništa što zalijepiš, uključujući URL-ove koji mogu sadržavati tokene, ID-ove sesija ili lične podatke, ne šalje se na server niti se pohranjuje.

Česta pitanja

Zašto dekodiranje ne uspijeva s greškom o neispravnom kodiranju?

Iza znaka % moraju slijediti tačno dvije heksadecimalne cifre, a dobijeni bajtovi moraju činiti ispravan UTF-8. Nizovi poput 100%, %G1 ili skraćene sekvence poput %E2%82 ne mogu se pouzdano dekodirati, pa alat prijavljuje problem umjesto da proizvede netačan tekst. Da uključiš doslovni znak postotka, kodiraj ga kao %25.

Koja je razlika između %20 i +?

Oba mogu predstavljati razmak, ali u različitim kontekstima. %20 vrijedi svugdje u URL-u. + znači razmak samo u nizovima upita kodiranim kao obrazac; drugdje je to doslovni znak plus.

Trebam li cijeli URL kodirati u načinu „Dio URL-a“?

Samo ako je cijeli URL sam vrijednost unutar drugog URL-a, na primjer parametar redirect=. U tom slučaju je način „Dio URL-a“ upravo ono što treba: https://a.com/?x=1 postaje https%3A%2F%2Fa.com%2F%3Fx%3D1.

Zašto je moj tekst kodiran dvaput?

Dvostruko kodiranje se dešava kada se već kodiran tekst ponovo kodira, pa %20 postaje %2520. Dekodiraj jednom da provjeriš i pazi da se svaka vrijednost kodira samo u trenutku kada se umeće u URL.

Skriva li ili štiti URL kodiranje podatke?

Ne. Postotno kodiranje je potpuno povratno i ne pruža nikakvu sigurnost. Osjetljive vrijednosti u URL-ovima mogu završiti u historiji preglednika i serverskim logovima, pa tajne uopće ne stavljaj u URL-ove.