URL koder i dekoder
Za jednu vrijednost upita ili segment putanje. Kodira sve osim slova, cifara i - _ . ! ~ * ' ( ), isto kao encodeURIComponent.
Zalijepite URL iznad. Njegovi dijelovi i parametri pojavit će se ovdje, spremni za izmjenu.
Parametri upita
Ovaj URL nema parametara upita.
Parametri fragmenta
Sve radi u vašem pregledniku i ništa što zalijepite se ne šalje na server. To je važno, jer URL-ovi često sadrže tokene i ID-ove sesija.
URL encode decode online dok kucate: alat pretvara razmake, slova s dijakriticima i simbole poput & ili ? u procentualno kodirane sekvence kao što je %20, a njih vraća u čitljiv tekst. Druga kartica je analizator URL-a. On razdvaja svaku adresu na protokol, host, putanju i parametre upita koje možete mijenjati, isključivati ili očistiti od oznaka za praćenje, a ispravno kodiran URL upisuje nazad umjesto vas. Sve se događa u vašem pregledniku.
URL encode decode: kako kodirati i dekodirati tekst
- Upišite ili zalijepite tekst u polje na kartici Kodiraj / Dekodiraj. Rezultat se osvježava sa svakim pritiskom na tipku.
- Odaberite Smjer. Kodiraj pravi tekst sigurnim za URL, a Dekodiraj vraća
caf%C3%A9%20au%20laitucafé au lait. Zalijepite li tekst sa sekvencama poput%20u prazno polje, alat sam prelazi na Dekodiraj (Kodiraj ga umjesto toga vraća nazad). Običan tekst koji treba kodirati, zalijepljen u načinu Dekodiraj, na isti način prebacuje na Kodiraj, uz Dekodiraj ga umjesto toga. - Pri kodiranju pod Kodiraj kao odaberite šta tekst predstavlja (pogledajte sljedeći odjeljak). Zadana opcija, Vrijednost parametra, odgovara jednoj vrijednosti upita.
- Kopiraj stavlja rezultat u međuspremnik. Zamijeni premješta rezultat u ulaz i mijenja smjer. To je brza provjera u krug: dekodiranje upravo kodiranog teksta mora vratiti vaš original.
Svaki znak koji je alat promijenio istaknut je u rezultatu. Zadržite pokazivač iznad njega da vidite znak, njegovu Unicode tačku i bajtove, na primjer é U+00E9 %C3%A9. Ispod polja vidite broj Znakova, UTF-8 bajtova i Kodiranih znakova (ili Dekodiranih znakova). Isprobaj primjer učitava rečenicu Cijena: 50 % popusta, čaj & ćevapi? Da!, koja ima 39 znakova, ali 41 UTF-8 bajt, jer svako slovo s dijakritikom zauzima dva bajta.
Pri kodiranju Svaki red posebno kodira svaki red za sebe i čuva prelome redova, što odgovara popisu vrijednosti ili linkova. Bez te opcije i prelom reda se kodira i postaje %0A. Kada je tekst URL s parametrima, alat nudi Razdvoji na dijelove, što otvara adresu na kartici analizatora.
Kako kodirati parametar URL-a, cijeli URL ili podatke obrasca
Nije svaki znak potrebno svugdje kodirati. Kosa crta razdvaja foldere u putanji, ali je običan podatak unutar vrijednosti parametra, pa ispravan rezultat zavisi od toga šta kodirate. Kodiraj kao nudi četiri načina:
- Vrijednost parametra radi kao JavaScriptov
encodeURIComponenti odgovara jednoj vrijednosti upita ili segmentu putanje. Kodira sve osim slova, cifara i- _ . ! ~ * ' ( ), pa&,=,/ili?unutar vrijednosti ne mogu pokvariti URL. Kodiranjemcafé & crèmedobije secaf%C3%A9%20%26%20cr%C3%A8me, spremno za upotrebu izaq=. - Cijeli URL je za kompletnu adresu koju samo treba urediti. Kodira razmake, znakove koji nisu ASCII, kontrolne znakove, obrnuti apostrof (backtick) i
" < > \ ^ { | }, a zadržava sve što URL-u daje strukturu:: / ? # [ ] @ ! $ & ' ( ) * + , ; =. Takohttps://example.com/search?q=café au lait&lang=frpostajehttps://example.com/search?q=caf%C3%A9%20au%20lait&lang=fr. Već kodirane sekvence ostaju kakve jesu, a usamljeni%postaje%25. Tu se razlikuje od JavaScriptovogencodeURI, koji postojeći%20pretvara u%2520i kodira uglaste zagrade IPv6 adrese poputhttp://[2001:db8::1]:8080/. - Podaci obrasca prate 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 kodiraju i! ' ( ) ~. - Strogi RFC 3986 ostavlja nekodirane samo nerezervirane znakove standarda RFC 3986 (na engleskom): slova, cifre i
- . _ ~. OAuth 1.0 (RFC 5849) i AWS Signature Version 4 zahtijevaju upravo ovaj oblik, jer se potpis podudara samo ako obje strane!ili*kodiraju na isti način.
Isti znakovi u svakom načinu:
| Znak | Vrijednost parametra | Cijeli 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 uvijek kodira kao UTF-8, a heksadecimalne cifre su uvijek velika slova. Ako ulaz već sadrži sekvence poput %20, napomena to javlja i nudi Dekodiraj ga umjesto toga, da tekst greškom ne kodirate dvaput.
Da biste JSON proslijedili u parametru upita, minimizirajte ga u JSON formateru i kodirajte kao Vrijednost 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: dekodirajte parametar ovdje, a zatim ga formatirajte tamo.
URL decode problemi: znakovi plus, %2520 i pokvarene sekvence
Dekodiranje obično jednostavno radi, ali četiri situacije zbunjuju ljude. Alat svaku od njih obrađuje umjesto da stane s greškom:
- Znak plus u podacima obrasca i većini nizova upita znači razmak. Dekodiraj + kao razmak je uključeno prema zadanim postavkama, pa se
caf%C3%A9+au+laitdekodira ucafé au lait. U cijelom URL-u kao razmaci se računaju samo plusevi iza?, jer je plus u putanji običan znak. Isključite opciju kada se plus misli doslovno. Plus koji je kodiran kao%2Buvijek ostaje plus. - Dvostruko kodiranje nastaje kada dva sloja koda kodiraju istu vrijednost, na što RFC 3986 izričito upozorava. Svaki
%postaje%25, pa se razmak iz%20pretvara u%2520. Ako dekodirani rezultat i dalje sadrži sekvence poput%20, alat kaže da je tekst vjerovatno kodiran dvaput i nudi Dekodiraj ponovo. - Nevažeća sekvenca,
%iza kojeg ne slijede dvije heksadecimalne cifre, kao u100%ili%G1, uzrokuje da JavaScriptovdecodeURIComponentbaci URIError. Ovdje se takve sekvence ostavljaju kakve jesu, označavaju crveno i broje, a ostatak teksta se dekodira. - Stari Latin-1 linkovi potiču iz vremena prije UTF-8, kada su neke stranice
ékodirale kao jedan bajt%E9.caf%E9nije ispravan UTF-8, padecodeURIComponentne uspijeva, a Pythonovunquotevraćacafiza kojeg slijedi zamjenski znak U+FFFD. Alat takve bajtove čita kao Windows-1252, dekodiracaf%E9ucaféi dodaje napomenu o tome.
Kontrolni znakovi u dekodiranom tekstu, poput tabulatora ili nul-bajta, prikazuju se kao vidljivi simboli ␉ i ␀, ali Kopiraj kopira pravi tekst.
Analizator URL-a: razdvojite URL i uredite parametre upita
Zalijepite adresu u polje URL na kartici Analiza i izmjena URL-a i ona se razdvaja na Protokol, Host, Port, Putanja i Fragment, plus Korisničko ime i Lozinka kada ih URL sadrži. Vrijednosti se prikazuju dekodirane, pa je ova kartica ujedno najbrži način da dekodirate parametre URL-a: čitate ženske čizme umjesto %C5%BEenske+%C4%8Dizme. Uređivanje radi u oba smjera, kao adresna traka i tabela parametara u Postmanu. Promijenite polje i URL se odmah ispravno kodiran prepisuje; promijenite URL i svi dijelovi se ponovo čitaju. Dijelovi koje ne dirate ostaju tačno onakvi kakvi su bili, znak po znak.
Tabela Parametri upita navodi svaki parametar s kolonama Naziv i Vrijednost. Isključite Uključi u URL da parametar izostavite bez brisanja, što pomaže kada tražite onaj koji kvari zahtjev. Dodaj parametar, Ukloni parametar i Sortiraj A do Z rade ono što piše. Ponovljeni nazivi poput tag=a&tag=b i nazivi bez vrijednosti poput ?debug se zadržavaju. Razmaci u parametrima određuje pišu li se razmaci kao %20 ili +; prema zadanim postavkama prati URL koji ste zalijepili.
Linkovi za prijavu i plaćanje često nose drugi URL unutar parametra, kodiran tako da se njegovi ? i & ne miješaju s vanjskim:
https://auth.example.com/authorize?client_id=abc&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Ftab%3D2
Vrijednost koja je i sama URL, tipično u redirect_uri, return, url ili next, dobija dugme Uredi ugniježdeni URL. Unutarnja adresa https://app.example.com/callback?tab=2 otvara se kao zaseban nivo sa svojim dijelovima i parametrima, trag navigacije (breadcrumb, Glavni URL › redirect_uri) vodi nazad, a svaka izmjena se kodirana upisuje u vanjski URL. Kopiraj glavni URL kopira rezultat. Ovo radi i nekoliko nivoa duboko.
Kada dio iza # izgleda kao parametri, kao #access_token=...&state=... u OAuth implicit toku ili #/search?q=shoes u rutama jednostraničnih aplikacija, druga tabela, Parametri fragmenta, i njih navodi.
Analizator ukazuje i na probleme: URL bez protokola, koji preglednici tretiraju kao relativni link; port izvan raspona od 0 do 65535; i znakove koje je potrebno kodirati, poput razmaka, slova s dijakriticima, " ili <, što Kodiraj ih popravlja jednim korakom. Tekst bez adrese, kao a=1&b=2, čita se kao niz upita. Za internacionaliziranu domenu (na engleskom) alat prikazuje Punycode oblik koji koriste DNS i preglednici, pa münchen.de postaje xn--mnchen-3ya.de, a domena koja počinje s xn-- dobija svoj č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, s ponovljenim nazivima skupljenim u niz.
Kako ukloniti UTM i druge parametre praćenja iz URL-a
Linkovi iz newslettera, oglasa i društvenih mreža nose parametre koji stranici samo govore odakle je posjetilac 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 poput fbclid (Facebook), gclid (Google Ads) i msclkid (Microsoft Advertising) dodaju same platforme.
Analizator ih označ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 ttclid (TikTok), mc_cid (Mailchimp) i _hsenc (HubSpot). Parametri koje stranica treba ostaju na mjestu: u linku trgovine iz Isprobaj primjer, 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 vrijedi prvo ovdje očistiti. Bez parametara praćenja je kraći, a kraći link daje manje gust kod koji se lakše skenira.
Šta je procentualno kodiranje i kako znakovi postaju %XX
Procentualno kodiranje (na engleskom, Percent-encoding), zvano i URL kodiranje, piše znak kao % iza kojeg slijede dvije heksadecimalne cifre. URL smije sadržavati samo ograničen skup ASCII znakova, a neki od njih imaju zadatak: ? počinje upit, & razdvaja parametre, # počinje fragment. RFC 3986 ih naziva rezerviranim znakovima (: / ? # [ ] @ i ! $ & ' ( ) * + , ; =). Slova, cifre i - . _ ~ su nerezervirani i nikad ih nije potrebno kodirati. Sve ostalo, kao i svaki rezervirani znak upotrijebljen kao običan podatak, kodira se.
Znakovi izvan ASCII-ja prvo se pretvaraju u UTF-8 bajtove, a svaki bajt dobija vlastiti %XX:
éje U+00E9, što UTF-8 pohranjuje kao dva bajta C3 A9, pa postaje%C3%A9.€je U+20AC, tri bajta:%E2%82%AC.- Emoji poput U+1F600 (nasmijano lice) zauzima četiri bajta:
%F0%9F%98%80.
%c3%a9 i %C3%A9 znače isto, ali RFC 3986 preporučuje velika slova, što alat i piše. Tabela procentualnog 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 encode 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 vrijednost, encodeURI za cijelu adresu i URLSearchParams za kodiranje obrasca:
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, a na nevažeću sekvencu poput 100% baca URIError.
U Pythonu funkcije se nalaze u urllib.parse. quote prema zadanim postavkama zadržava / (safe='/'), a inače kodira sve osim nerezerviranih znakova 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 razmak piše kao +, dok rawurlencode slijedi 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 načinu Podaci obrasca, osim za *, koji kodira kao %2A.
Često postavljana pitanja
Treba li razmak kodirati kao %20 ili +?
%20 radi svugdje 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 vrijednost upita treba pravi plus, napišite ga kao %2B. U alatu Podaci obrasca pišu razmake kao +, a ostala tri načina 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). Dvije cifre su kôd znaka u heksadecimalnom zapisu. Slova s dijakriticima i drugi znakovi izvan ASCII-ja zauzimaju od dva do četiri takva para, kao %C3%A9 za é. Zalijepite cijeli niz u dekoder da ga pročitate.
Koja je razlika između encodeURI i encodeURIComponent?
encodeURI je namijenjen cijeloj adresi i ostavlja znakove koji joj daju strukturu, poput : / ? # & =. encodeURIComponent je namijenjen jednom dijelu, vrijednosti 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 ovom alatu Vrijednost parametra odgovara funkciji encodeURIComponent, a Cijeli URL je kao encodeURI, ali zadržava postojeće sekvence poput %20 umjesto da ih pretvara u %2520.
Kako ukloniti UTM parametre iz URL-a?
Zalijepite link na karticu Analiza i izmjena URL-a i pritisnite Ukloni praćenje (n). Time se odjednom brišu sve utm_* oznake i ID-ovi klikova poput fbclid i gclid. Zatim pritisnite Kopiraj URL. Ako želite izbaciti samo neke, upotrijebite Ukloni parametar na redovima koje ne želite.
Je li URL kodiranje isto što i šifriranje ili Base64?
Ne. URL kodiranje ništa ne skriva: svako može caf%C3%A9 dekodirati nazad u café, pa nikad ne štiti lozinku ni token. Ono samo čini znakove sigurnim za upotrebu u adresi. Base64 je drugačije kodiranje koje bilo koje podatke, uključujući binarne datoteke, pretvara u niz od 64 znaka. Base64 niz u URL-u i dalje treba kodirane +, / i =, osim ako koristite URL-siguran oblik, koji može napraviti Base64 koder i dekoder.
Šalju li se ili pohranjuju URL-ovi koje zalijepim?
Ne. Kodiranje, dekodiranje i analiza rade u vašem pregledniku i ništa što zalijepite ne šalje se na server. To je važno, jer URL-ovi često nose pristupne tokene, ID-ove sesija ili kodove za poništavanje lozinke. Preglednik pamti samo odabranu karticu i opcije, nikad tekstove. Jedino što učitava adresu je Otvori, koje je otvara u novoj kartici baš kao klik na link.
Više alata za programere nalazi se u kategoriji Programeri, a alati koji jedan format pretvaraju u drugi skupljeni su pod Konverteri. Da biste pronašli šta se razlikuje između dva duga URL-a, na primjer ispravnog i neispravnog API poziva, zalijepite ih u alat za poređenje tekstova i uporedite po znakovima.