URL enkoder i dekoder
За једну вредност упита или део путање. Кодира све осим слова, цифара и - _ . ! ~ * ' ( ), исто као encodeURIComponent.
Налепите URL изнад. Његови делови и параметри појављују се овде, спремни за уређивање.
Параметри упита
Овај URL нема параметре упита.
Параметри фрагмента
Све ради у вашем прегледачу и ништа што налепите се не отпрема. То је важно, јер URL-ови често носе токене и ИД-ове сесија.
URL enkoder i dekoder online kodira i dekodira tekst dok kucate: alatka pretvara razmake, slova sa dijakriticima i simbole kao što su & ili ? u procentno kodirane nizove poput %20, a zatim ih vraća u čitljiv tekst. Druga kartica je URL parser. Ona razlaže bilo koju adresu na protokol, host, putanju i parametre upita koje možete menjati, isključivati ili čistiti od oznaka za praćenje, a pravilno kodiranu adresu upisuje nazad umesto vas. Sve se događa u vašem pregledaču.
Kako se kodira i dekodira URL
- Otkucajte ili nalepite tekst u polje na kartici Kodiraj / Dekodiraj. Rezultat se osvežava sa svakim pritiskom na taster.
- Izaberite Smer. Kodiraj čini tekst bezbednim za URL, a Dekodiraj vraća
caf%C3%A9%20au%20laitucafé au lait. Ako u prazno polje nalepite tekst sa nizovima kao što je%20, alatka sama prelazi na Dekodiraj (Kodiraj umesto toga vraća nazad). Običan tekst koji treba kodirati, nalepljen u režimu Dekodiraj, na isti način prebacuje na Kodiraj, uz dugme Dekodiraj umesto toga. - Pri kodiranju pod Kodiraj kao izaberite šta tekst predstavlja (pogledajte sledeći odeljak). Podrazumevana Vrednost parametra odgovara jednoj vrednosti upita.
- Kopiraj stavlja rezultat u klipbord. Zameni premešta rezultat u ulaz i okreće smer. To je brza provera u krug: dekodiranjem upravo kodiranog teksta morate dobiti original.
Svaki znak koji je alatka promenila istaknut je u rezultatu. Zadržite pokazivač iznad njega da vidite znak, njegovu Unicode tačku i bajtove, na primer é U+00E9 %C3%A9. Ispod polja vidite broj Znakova, UTF-8 bajtova i Kodiranih znakova (ili Dekodiranih znakova). Isprobaj primer učitava rečenicu Цена: 50 % попуста, ћевапи & ражњићи? Да!, koja ima 41 znak, ali 67 UTF-8 bajtova, jer svako ćirilično slovo zauzima dva bajta.
Pri kodiranju Svaki red posebno kodira svaki red za sebe i čuva prelome redova, što odgovara spisku vrednosti ili linkova. Bez te opcije i prelom reda se kodira i postaje %0A. Kada je tekst URL sa parametrima, alatka nudi Razloži na delove, što otvara adresu na kartici parsera.
Kodiranje parametra, celog URL-a ili podataka obrasca
Ne mora svaki znak da se kodira svuda. Kosa crta razdvaja foldere u putanji, ali je običan podatak unutar vrednosti parametra, pa tačan rezultat zavisi od toga šta kodirate. Kodiraj kao nudi četiri režima:
- Vrednost parametra radi kao JavaScript
encodeURIComponenti odgovara jednoj vrednosti upita ili segmentu putanje. Kodira sve osim slova, cifara i- _ . ! ~ * ' ( ), pa&,=,/ili?unutar vrednosti ne mogu pokvariti URL. Kodiranjemcafé & crèmedobija secaf%C3%A9%20%26%20cr%C3%A8me, spremno za upis posleq=. - Ceo URL je za kompletnu adresu koju samo treba urediti. Kodira razmake, znakove izvan ASCII, kontrolne znakove, obrnuti apostrof i
" < > \ ^ { | }, a zadržava sve što URL-u daje strukturu:: / ? # [ ] @ ! $ & ' ( ) * + , ; =. Zatohttps://example.com/search?q=café au lait&lang=frpostajehttps://example.com/search?q=caf%C3%A9%20au%20lait&lang=fr. Nizovi koji su već kodirani ostaju kakvi jesu, a usamljeni%postaje%25. Po tome se razlikuje od JavaScript funkcijeencodeURI, koja postojeći%20pretvara u%2520i kodira zagrade IPv6 adrese kao što jehttp://[2001:db8::1]:8080/. - Podaci obrasca prati format application/x-www-form-urlencoded (na engleskom) koji proizvode HTML obrasci i
URLSearchParams. Razmak postaje+, a nekodirani ostaju samo slova, cifre i* - . _, pa se i! ' ( ) ~kodiraju. - Strogi RFC 3986 ostavlja nekodirane samo nerezervisane znakove iz RFC 3986 (na engleskom): slova, cifre i
- . _ ~. OAuth 1.0 (RFC 5849) i AWS Signature Version 4 zahtevaju upravo ovaj oblik, jer se potpis poklapa samo ako obe strane isto kodiraju!ili*.
Isti znakovi u svakom režimu:
| Znak | Vrednost parametra | Ceo URL | Podaci obrasca | Strogi RFC 3986 |
|---|---|---|---|---|
| razmak | %20 | %20 | + | %20 |
& | %26 | & | %26 | %26 |
/ | %2F | / | %2F | %2F |
+ | %2B | + | %2B | %2B |
~ | ~ | ~ | %7E | ~ |
! | ! | ! | %21 | %21 |
* | * | * | * | %2A |
é | %C3%A9 | %C3%A9 | %C3%A9 | %C3%A9 |
Tekst se uvek kodira kao UTF-8, a heksadecimalne cifre su uvek velika slova. Ako ulaz već sadrži nizove kao što je %20, napomena to kaže i nudi Dekodiraj umesto toga, da tekst ne biste greškom kodirali dvaput.
Da biste JSON preneli u parametru upita, smanjite ga u JSON formateru i kodirajte kao Vrednost parametra: {"id":7,"tags":["a","b"]} postaje %7B%22id%22%3A7%2C%22tags%22%3A%5B%22a%22%2C%22b%22%5D%7D. Radi i obrnuto: parametar dekodirajte ovde, a zatim ga formatirajte tamo.
Problemi pri dekodiranju URL-a: plus, %2520 i pokvareni nizovi
Dekodiranje obično jednostavno radi, ali četiri situacije zbunjuju ljude. Alatka rešava svaku od njih umesto da stane sa greškom:
- Znak plus označava razmak u podacima obrasca i u većini nizova upita. Dekodiraj + kao razmak je podrazumevano uključeno, pa se
caf%C3%A9+au+laitdekodira ucafé au lait. U celom URL-u samo plusevi posle znaka?važe kao razmaci, jer je u putanji plus običan znak. Isključite opciju kada je plus mišljen doslovno. Plus koji je kodiran kao%2Buvek ostaje plus. - Dvostruko kodiranje nastaje kada dva sloja koda kodiraju istu vrednost, na šta RFC 3986 izričito upozorava. Svaki
%postaje%25, pa se razmak iz%20pretvara u%2520. Ako dekodirani rezultat i dalje sadrži nizove kao što je%20, alatka kaže da je tekst verovatno kodiran dvaput i nudi Dekodiraj ponovo. - Neispravan niz, to jest
%iza koga ne slede dve heksadecimalne cifre kao u100%ili%G1, izaziva grešku URIError u JavaScript funkcijidecodeURIComponent. Ovde se takvi nizovi ostavljaju kakvi jesu, označavaju crvenom bojom i broje, a ostatak teksta se dekodira. - Stari Latin-1 linkovi potiču iz vremena pre UTF-8, kada su neki sajtovi kodirali
ékao jedan bajt%E9.caf%E9nije ispravan UTF-8, padecodeURIComponentne uspeva, a Pythonovunquotevraćacafiza koga sledi zamenski znak U+FFFD. Alatka takve bajtove čita kao Windows-1252, dekodiracaf%E9ucaféi dodaje napomenu o tome.
Kontrolni znakovi u dekodiranom tekstu, kao što su tabulator ili nulti bajt, prikazuju se vidljivim simbolima poput ␉ i ␀, ali Kopiraj kopira stvarni tekst.
URL parser: razlaganje URL-a i uređivanje parametara upita
Nalepite adresu u polje URL na kartici Razloži i uredi URL i ona se razlaže na Protokol, Host, Port, Putanja i Fragment, uz Korisničko ime i Lozinka kada ih URL sadrži. Vrednosti se prikazuju dekodirane, pa je ova kartica i najbrži način da dekodirate parametre URL-a: čitate кожне ципеле umesto %D0%BA%D0%BE%D0%B6%D0%BD%D0%B5+%D1%86%D0%B8%D0%BF%D0%B5%D0%BB%D0%B5. Uređivanje radi u oba smera, kao adresna traka i tabela parametara u Postmanu. Promenite polje i URL se odmah ponovo piše, pravilno kodiran; promenite URL i svi delovi se ponovo čitaju. Delovi koje ne dirate ostaju tačno onakvi kakvi su bili, znak po znak.
Tabela Parametri upita navodi svaki parametar sa njegovim Naziv i Vrednost. Isključite Uključi u URL da parametar izostavite bez brisanja, što pomaže kada tražite onaj koji kvari zahtev. Dodaj parametar, Ukloni parametar i Sortiraj A do Š rade ono što pišu. Ponovljeni nazivi poput tag=a&tag=b i nazivi bez vrednosti poput ?debug se čuvaju. Razmaci u parametrima određuje da li se razmaci pišu kao %20 ili +; podrazumevano prati URL koji ste nalepili.
Linkovi za prijavu i plaćanje često u parametru nose drugi URL, kodiran tako da se njegovi ? i & ne mešaju sa spoljnim:
https://auth.example.com/authorize?client_id=abc&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Ftab%3D2
Vrednost koja je i sama URL, obično u redirect_uri, return, url ili next, dobija dugme Uredi URL unutra. Unutrašnja adresa https://app.example.com/callback?tab=2 otvara se kao poseban nivo sa sopstvenim delovima i parametrima, putanja za povratak (Glavni URL › redirect_uri) vodi nazad, a svaka promena se kodirana upisuje u spoljni URL. Kopiraj glavni URL kopira rezultat. Ovo radi i na više nivoa dubine.
Kada deo posle # liči na parametre, kao #access_token=...&state=... u OAuth implicitnom toku ili #/search?q=shoes u rutama jednostranih aplikacija, druga tabela, Parametri fragmenta, i njih navodi.
Parser ukazuje i na probleme: URL bez protokola, koji pregledači tretiraju kao relativan link; port izvan opsega od 0 do 65535; i znakove koji moraju biti kodirani, kao što su razmaci, slova sa dijakriticima, " ili <, što Kodiraj ih ispravlja jednim korakom. Tekst bez adrese, poput a=1&b=2, čita se kao niz upita. Za internacionalizovani domen (na engleskom) alatka prikazuje Punycode oblik koji koriste DNS i pregledači, pa münchen.de postaje xn--mnchen-3ya.de, a domen koji počinje sa xn-- dobija čitljiv oblik.
Kopiraj URL kopira gotovu adresu, Otvori je otvara u novoj kartici (samo http i https linkovi), a Kopiraj kao JSON daje parametre kao JSON objekat, sa ponovljenim nazivima sakupljenim u niz.
Uklanjanje UTM i drugih parametara za praćenje iz URL-a
Linkovi iz biltena, reklama i društvenih mreža nose parametre koji sajtu samo kažu odakle je posetilac došao. UTM parametri (na engleskom) utm_source, utm_medium, utm_campaign, utm_term i utm_content potiču od Urchina, prethodnika Google Analyticsa. ID-ove klikova kao što su fbclid (Facebook), gclid (Google Ads) i msclkid (Microsoft Advertising) dodaju same platforme.
Parser ih obeležava oznakom praćenje, a Ukloni praćenje (n) briše sve odjednom. Pored svakog utm_* parametra prepoznaje još više od 20 drugih, kao što su ttclid (TikTok), mc_cid (Mailchimp) i _hsenc (HubSpot). Parametri koji su stranici potrebni ostaju na mestu: u linku prodavnice iz Isprobaj primer, Ukloni praćenje (4) uklanja utm_source, utm_medium, utm_campaign i fbclid, a zadržava q, size, return i fragment #reviews.
Link koji ide u QR kod vredi prvo očistiti ovde. Bez parametara za praćenje kraći je, a kraći link daje ređi kod koji se lakše skenira.
Šta je procentno kodiranje i kako znakovi postaju %XX
Procentno kodiranje (na engleskom), poznato i kao URL kodiranje, piše znak kao % iza koga slede dve heksadecimalne cifre. URL sme da sadrži samo ograničen skup ASCII znakova, a neki od njih imaju zadatak: ? počinje upit, & razdvaja parametre, # počinje fragment. RFC 3986 ih naziva rezervisanim znakovima (: / ? # [ ] @ i ! $ & ' ( ) * + , ; =). Slova, cifre i - . _ ~ su nerezervisani znakovi i nikad ih nije potrebno kodirati. Sve ostalo, kao i svaki rezervisani znak koji se koristi kao običan podatak, kodira se.
Znakovi izvan ASCII prvo se pretvaraju u UTF-8 bajtove, a svaki bajt dobija sopstveni %XX:
éje U+00E9, što UTF-8 čuva kao dva bajta C3 A9, pa postaje%C3%A9.€je U+20AC, tri bajta:%E2%82%AC.- Emodži kao što je U+1F600 (nasmejano lice) zauzima četiri bajta:
%F0%9F%98%80.
%c3%a9 i %C3%A9 znače isto, ali RFC 3986 preporučuje velika slova, što alatka i piše. Tabela procentnog kodiranja znakova koje najčešće srećete:
| Znak | Kodirano | Znak | Kodirano |
|---|---|---|---|
| razmak | %20 | + | %2B |
! | %21 | , | %2C |
" | %22 | / | %2F |
# | %23 | : | %3A |
$ | %24 | ; | %3B |
% | %25 | = | %3D |
& | %26 | ? | %3F |
' | %27 | @ | %40 |
( | %28 | [ | %5B |
) | %29 | ] | %5D |
* | %2A | prelom reda | %0A |
URL kodiranje u JavaScriptu, Pythonu i PHP-u
Svaki jezik ima funkcije za ovo, a razlikuju se uglavnom po tome kako tretiraju razmake, kose crte i ! ' ( ) * ~.
JavaScript ima encodeURIComponent (na engleskom) za vrednost, encodeURI za celu adresu i URLSearchParams za kodiranje obrazaca:
encodeURIComponent("café & crème") // "caf%C3%A9%20%26%20cr%C3%A8me"
encodeURI("https://example.com/a b?q=café") // "https://example.com/a%20b?q=caf%C3%A9"
new URLSearchParams({ q: "café & crème" }).toString() // "q=caf%C3%A9+%26+cr%C3%A8me"
decodeURIComponent("caf%C3%A9") // "café"
decodeURIComponent ne pretvara + u razmak i izaziva URIError na neispravnom nizu kao što je 100%.
U Pythonu se funkcije nalaze u urllib.parse. quote podrazumevano zadržava / (safe='/'), a inače kodira sve osim nerezervisanih znakova iz RFC 3986. quote_plus piše razmake kao + i kodira i /:
from urllib.parse import quote, quote_plus, urlencode, unquote_plus
quote("café & crème/brûlée") # 'caf%C3%A9%20%26%20cr%C3%A8me/br%C3%BBl%C3%A9e'
quote("a b/c", safe="") # 'a%20b%2Fc'
quote_plus("café & crème/brûlée") # 'caf%C3%A9+%26+cr%C3%A8me%2Fbr%C3%BBl%C3%A9e'
urlencode({"q": "café & crème", "page": 2}) # 'q=caf%C3%A9+%26+cr%C3%A8me&page=2'
unquote_plus("caf%C3%A9+au+lait") # 'café au lait'
U PHP-u urlencode kodira kao HTML obrazac i piše razmak kao +, dok rawurlencode prati RFC 3986 i piše %20:
urlencode("café & crème"); // "caf%C3%A9+%26+cr%C3%A8me"
rawurlencode("café & crème"); // "caf%C3%A9%20%26%20cr%C3%A8me"
rawurlencode daje isti rezultat kao Strogi RFC 3986. urlencode odgovara režimu Podaci obrasca, osim za *, koji kodira kao %2A.
Često postavljana pitanja
Da li razmak treba kodirati kao %20 ili +?
%20 radi svuda u URL-u. + znači razmak samo u nizu upita i u podacima obrasca, formatu koji šalju HTML obrasci. U putanji je + običan znak plus, pa /a+b ostaje /a+b. Kada vrednost upita treba da sadrži pravi plus, napišite ga kao %2B. Režim Podaci obrasca piše razmake kao +, a ostala tri režima kao %20.
Šta znače %20, %2F i %3D u URL-u?
To su kodirani znakovi: %20 je razmak, %2F kosa crta, a %3D znak jednakosti. Druge koje često viđate su %26 (&), %3F (?), %3A (:), %2C (zarez) i %27 (apostrof). Dve cifre su kôd znaka u heksadecimalnom zapisu. Slova sa dijakriticima i ostali znakovi izvan ASCII zauzimaju dva do četiri takva para, kao %C3%A9 za é. Nalepite ceo niz u dekoder da ga pročitate.
Koja je razlika između encodeURI i encodeURIComponent?
encodeURI je namenjen celoj adresi i ostavlja znakove koji joj daju strukturu, kao što su : / ? # & =. encodeURIComponent je namenjen jednom delu, vrednosti parametra ili segmentu putanje, i kodira i te znakove, pa https://example.com/?a=1&b=2 postaje https%3A%2F%2Fexample.com%2F%3Fa%3D1%26b%3D2. U ovoj alatki Vrednost parametra odgovara funkciji encodeURIComponent, a Ceo URL je kao encodeURI, ali zadržava postojeće nizove kao što je %20 umesto da ih pretvara u %2520.
Kako ukloniti UTM parametre iz URL-a?
Nalepite link na karticu Razloži i uredi URL i pritisnite Ukloni praćenje (n). To briše svaku oznaku utm_* i ID-ove klikova kao što su fbclid i gclid odjednom. Zatim pritisnite Kopiraj URL. Ako želite da izbacite samo neke, koristite Ukloni parametar na redovima koje ne želite.
Da li je URL kodiranje isto što i šifrovanje ili Base64?
Ne. URL kodiranje ništa ne skriva: svako može da dekodira caf%C3%A9 nazad u café, pa nikad ne štiti lozinku ni token. Ono samo čini znakove bezbednim za upotrebu u adresi. Base64 je drugo kodiranje koje bilo koje podatke, uključujući binarne datoteke, pretvara u niz od 64 znaka. Base64 niz u URL-u i dalje zahteva kodiranje znakova +, / i =, osim ako ne koristite URL-safe varijantu, koju može da napravi Base64 enkoder i dekoder.
Da li se URL-ovi koje nalepim otpremaju ili čuvaju?
Ne. Kodiranje, dekodiranje i razlaganje rade u vašem pregledaču i ništa što nalepite ne šalje se na server. To je važno, jer URL-ovi često nose pristupne tokene, ID-ove sesija ili kodove za resetovanje lozinke. Pregledač pamti samo izabranu karticu i opcije, nikad tekstove. Jedino što učitava adresu je Otvori, koje je otvara u novoj kartici baš kao klik na link.
Još alata za programere nalazi se u kategoriji Programeri, a alati koji jedan format pretvaraju u drugi sakupljeni su u kategoriji Konverteri. Da biste videli šta se razlikuje između dva duga URL-a, na primer ispravnog i neispravnog poziva API-ja, nalepite ih u alat za poređenje teksta i poredite po znakovima.