Što je ovaj alat?
URL kodiranje (postotno kodiranje) zamjenjuje znakove koji nisu dopušteni u URL-ovima znakom % nakon kojeg slijedi njihova bajt-vrijednost u heksadecimalnom zapisu — razmak postaje %20, a 你 postaje %E4%BD%A0. Bez toga bi znakovi poput razmaka, &, ? i nelatiničnog teksta narušili strukturu URL-a ili ih server pogrešno protumačio.
Postoje dvije uobičajene potrebe, a ovaj alat podržava obje: kodiranje vrijednosti koja ide unutar parametra upita (način za komponentu — kodira i / ? & =) te kodiranje cijelog URL-a uz zadržavanje njegove strukture (način za cijeli URL — ostavlja :// ? & netaknutima).
Jedna povijesna posebnost vrijedna spomena: razmak je prema URL standardu (RFC 3986) ispravno %20, ali su HTML obrasci tradicionalno umjesto toga kodirali razmak kao znak plus — zbog čega ćete vidjeti i q=hello%20world i q=hello+world u praksi, i zašto dekodiranje podataka iz obrazaca ponekad zahtijeva zaseban tretman znaka +.
Zašto ga koristiti?
- Sigurno gradite upitne nizove — korisnički unos s &, = ili razmacima neće razbiti vaš URL.
- Dekodirajte duge kodirane URL-ove iz zapisa, analitike ili preusmjeravanja da vidite što zapravo govore.
- Ispravna obrada UTF-8 znakova za kineski, emojije i drugi nelatinični tekst.
- Dva načina rada tako da slučajno ne kodirate : i / cijelog URL-a.
- Besplatno, trenutačno, bez slanja na server.
Kako ga koristiti
- Zalijepite svoj tekst ili URL u polje za unos.
- Odaberite način: "Komponenta" za vrijednosti koje idu u parametre upita, "Cijeli URL" za cijele URL-ove.
- Kliknite "Kodiraj" ili "Dekodiraj".
- Kopirajte rezultat.
Primjer
Ulaz
https://example.com/search?q=hello world & 你好Izlaz
Način za komponentu: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Način za cijeli URL: https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BDNačin za komponentu kodira i strukturne znakove; način za cijeli URL ih zadržava.
Uobičajeni slučajevi upotrebe
- Izrada URL-a za dijeljenje gdje pojam za pretraživanje ili vrijednost filtra dolazi od korisničkog unosa i može sadržavati razmake, & ili druge posebne znakove.
- Dekodiranje dugog URL-a za praćenje ili preusmjeravanje iz e-maila ili oglasne kampanje da vidite stvarno odredište i parametre prije klika.
- Otklanjanje grešaka zašto server ne čita ispravno parametar upita — često je krivac rezervirani znak koji je trebao biti kodiran, ali nije.
- Priprema vrijednosti na nelatiničnom jeziku (kineski, japanski, arapski itd.) za upotrebu u upitnom nizu URL-a.
encodeURIComponent naspram encodeURI, u praksi
Ovo se izravno odnosi na dva načina rada ovog alata i odgovara stvarnim JavaScript funkcijama koje developeri već poznaju: encodeURIComponent (način za komponentu) kodira sve osim malog skupa nerezerviranih znakova, čineći ga sigurnim za bilo koju pojedinačnu vrijednost koja se umeće u URL — to koristite za parametar upita, segment putanje ili vrijednost hash fragmenta. encodeURI (način za cijeli URL) ostavlja strukturne znakove URL-a (:, /, ?, #, &, =) netaknutima jer pretpostavlja da kodirate cijeli, već strukturirani URL, a ne sirovu vrijednost — korištenje na jednoj vrijednosti parametra ne bi kodiralo znakove & ili = koje ta vrijednost može sadržavati, što je najčešća greška pri odabiru pogrešnog načina.
Rezervirani naspram nerezerviranih znakova
Specifikacija URL-a (RFC 3986) dijeli znakove u dvije skupine: nerezervirani znakovi (slova, brojevi, - _ . ~) uvijek su sigurni i nikad se ne kodiraju, dok rezervirani znakovi (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) imaju posebno značenje u strukturi URL-a i trebaju se kodirati samo kad se pojavljuju kao doslovni podatak, a ne kao strukturna interpunkcija. Upravo zato postoje dva načina rada — način za komponentu tretira rezervirane znakove kao podatak koji treba zaštititi, a način za cijeli URL ih tretira kao strukturu koju treba sačuvati. Razumijevanje ove razlike korisnije je od pamćenja kada koristiti koji način, jer objašnjava zašto se isti znak (poput &) ponekad kodira, a ponekad ostavlja neizmijenjen, ovisno o ulozi koju ima u konkretnom URL-u.
Često postavljana pitanja
Kada koristiti način za komponentu, a kada za cijeli URL?
Način za komponentu (encodeURIComponent) kad kodirate jednu vrijednost koja ide unutar parametra upita — kodira /, ?, & i = kako ne bi narušili URL. Način za cijeli URL (encodeURI) kad kodirate cijeli URL — zadržava strukturne znakove tako da URL i dalje funkcionira.
Zašto se pojavio %20 umjesto + za razmake?
Oba su valjana u različitim kontekstima. %20 je univerzalno postotno kodiranje za razmak; + znači razmak samo unutar upitnih nizova koji koriste stariji format application/x-www-form-urlencoded. Ovaj alat koristi %20, koji radi posvuda.
Zašto dekodiranje ne uspijeva s greškom?
Unos sadrži neispravan postotni niz, poput znaka % koji nije praćen s dvije heksadecimalne znamenke. To se često događa kad je URL prekinut ili dvostruko dekodiran. Ispravite ili uklonite pokvareni % niz.
Što je dvostruko kodiranje?
Kodiranje već kodiranog teksta: %20 postaje %2520 jer se sam znak % kodira u %25. To je česta greška — ako vaš dekodirani rezultat i dalje sadrži % kodove, dekodirajte ga još jednom.
Obrađuje li ovo kineske znakove i emojije?
Da. Tekst se kodira kao UTF-8 bajtovi, pa 你好 postaje %E4%BD%A0%E5%A5%BD i savršeno se dekodira natrag — isto ponašanje kao u preglednicima.