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.
Kako koristiti URL kodiranje i dekodiranje
- Odaberi Kodiraj da tekst pretvoriš u oblik siguran za URL ili Dekodiraj da postotno kodiran tekst vratiš u čitljive znakove.
- 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.
- 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 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.
Srodni alati
- Base64 koder i dekoder Besplatan Base64 koder i dekoder s punom podrškom za UTF-8 i opcijom base64url. Radi u pregledniku, ništa se ne šalje na server.
- JSON formater i validator Besplatan JSON formater i validator koji uljepšava, minifikuje i provjerava JSON u pregledniku, a sintaksne greške prijavljuje s redom i kolonom.