CodeKitHub
Alati za kodiranje

URL kodiranje / dekodiranje online

Zadnje ažurirano:

Postotno kodirajte tekst za sigurnu upotrebu u URL-ovima, ili dekodirajte kodirani URL natrag u čitljiv oblik. Odaberite način za komponentu (kodira sve, za vrijednosti parametara upita) ili način za cijeli URL (zadržava strukturu :// ? & netaknutom). Sve se odvija isključivo u vašem pregledniku.

Š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

  1. Zalijepite svoj tekst ili URL u polje za unos.
  2. Odaberite način: "Komponenta" za vrijednosti koje idu u parametre upita, "Cijeli URL" za cijele URL-ove.
  3. Kliknite "Kodiraj" ili "Dekodiraj".
  4. 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%BD

Nač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.

Povezani alati