URL-kooderi ja -dekooderi
Yhdelle kyselyn arvolle tai polun osalle. Koodaa kaiken paitsi kirjaimet, numerot ja - _ . ! ~ * ' ( ), kuten encodeURIComponent.
Liitä URL yllä olevaan kenttään. Sen osat ja parametrit näkyvät tässä muokattavina.
Kyselyn parametrit
Tässä URL-osoitteessa ei ole kyselyn parametreja.
Fragmentin parametrit
Kaikki tapahtuu selaimessasi, eikä mitään liittämääsi lähetetä minnekään. Sillä on merkitystä, koska URL-osoitteissa on usein tunnisteita ja istuntotunnuksia.
URL encode ja decode verkossa kirjoittaessasi: työkalu muuttaa välilyönnit, ääkköset ja merkit kuten & tai ? prosenttikoodatuiksi jaksoiksi, esimerkiksi %20, ja palauttaa ne takaisin luettavaksi tekstiksi. Toinen välilehti on URL-jäsennin. Se jakaa minkä tahansa osoitteen protokollaan, isäntään, polkuun ja kyselyn parametreihin, joita voit muokata, kytkeä pois tai puhdistaa seurantatunnisteista, ja kirjoittaa oikein koodatun URL-osoitteen takaisin puolestasi. Kaikki tapahtuu selaimessasi.
URL-koodaus ja dekoodaus tekstille vaihe vaiheelta
- Kirjoita tai liitä teksti Koodaa / Dekoodaa -välilehden kenttään. Tulos päivittyy jokaisella näppäilyllä.
- Valitse Suunta. Koodaa tekee tekstistä URL-osoitteeseen sopivan, Dekoodaa muuttaa
caf%C3%A9%20au%20laittakaisin muotooncafé au lait. Jos liität tyhjään kenttään tekstiä, jossa on jaksoja kuten%20, työkalu vaihtaa itse tilaan Dekoodaa (Koodaa sen sijaan vaihtaa takaisin). Jos liität Dekoodaa-tilassa tekstiä, joka tarvitsee koodauksen, työkalu vaihtaa samalla tavalla tilaan Koodaa, ja painikkeen teksti on Dekoodaa sen sijaan. - Koodatessasi valitse kohdasta Koodaa muodossa, mitä teksti on (katso seuraava osio). Oletus Parametrin arvo sopii yksittäiselle kyselyn arvolle.
- Kopioi vie tuloksen leikepöydälle. Vaihda siirtää tuloksen syötteeksi ja kääntää suunnan. Se on nopea edestakaisen muunnoksen tarkistus: juuri koodatun tekstin dekoodauksen pitää palauttaa alkuperäinen teksti.
Jokainen merkki, jonka työkalu muutti, korostetaan tuloksessa. Vie hiiri sen päälle, niin näet merkin, sen Unicode-koodipisteen ja tavut, esimerkiksi é U+00E9 %C3%A9. Kenttien alla näkyvät Merkkejä, UTF-8-tavuja ja Koodattuja merkkejä (tai Dekoodattuja merkkejä). Kokeile esimerkkiä lataa lauseen Hinta: 50 % alennus, päärynä & mansikka? Kyllä!, jossa on 47 merkkiä mutta 51 UTF-8-tavua, koska jokainen ääkkönen vie kaksi tavua.
Koodatessasi Jokainen rivi erikseen koodaa jokaisen rivin omana kokonaisuutenaan ja säilyttää rivinvaihdot, mikä sopii arvo- tai linkkilistalle. Ilman sitä myös rivinvaihto koodataan ja siitä tulee %0A. Kun teksti on URL-osoite parametreineen, työkalu tarjoaa painikkeen Jaa osiin, joka avaa osoitteen URL-jäsennin-välilehdellä.
URL-parametrin, koko URL-osoitteen ja lomaketietojen koodaus
Kaikkia merkkejä ei tarvitse koodata joka paikassa. Vinoviiva erottaa kansiot polussa mutta on pelkkää dataa parametrin arvon sisällä, joten oikea tulos riippuu siitä, mitä koodaat. Koodaa muodossa tarjoaa neljä tilaa:
- Parametrin arvo toimii kuten JavaScriptin
encodeURIComponentja sopii yhdelle kyselyn arvolle tai polun osalle. Se koodaa kaiken paitsi kirjaimet, numerot ja- _ . ! ~ * ' ( ), joten arvon sisällä oleva&,=,/tai?ei voi rikkoa URL-osoitetta. Merkkijononcafé & crèmekoodaus antaa tuloksencaf%C3%A9%20%26%20cr%C3%A8me, joka on valmis liitettäväksi kohtaanq=. - Koko URL on tarkoitettu kokonaiselle osoitteelle, jota pitää vain siistiä. Se koodaa välilyönnit, ASCII-merkistön ulkopuoliset merkit, ohjausmerkit, gravis-merkin ja
" < > \ ^ { | }, ja säilyttää kaiken, mikä antaa URL-osoitteelle rakenteen:: / ? # [ ] @ ! $ & ' ( ) * + , ; =. Siksihttps://example.com/search?q=café au lait&lang=frmuuttuu muotoonhttps://example.com/search?q=caf%C3%A9%20au%20lait&lang=fr. Valmiiksi koodatut jaksot pysyvät ennallaan, ja yksittäinen%muuttuu muotoon%25. Tässä se eroaa JavaScriptinencodeURI-funktiosta, joka muuttaa olemassa olevan%20:n muotoon%2520ja koodaa IPv6-osoitteen hakasulut, kuten osoitteessahttp://[2001:db8::1]:8080/. - Lomaketiedot noudattaa application/x-www-form-urlencoded-muotoa (englanniksi), jonka HTML-lomakkeet ja
URLSearchParamstuottavat. Välilyönnistä tulee+, ja vain kirjaimet, numerot ja* - . _jäävät koodaamatta, joten myös! ' ( ) ~koodataan. - Tiukka RFC 3986 jättää koodaamatta vain RFC 3986:n (englanniksi) varaamattomat merkit: kirjaimet, numerot ja
- . _ ~. OAuth 1.0 (RFC 5849) ja AWS Signature Version 4 vaativat täsmälleen tämän muodon, koska allekirjoitus täsmää vain, jos molemmat osapuolet koodaavat!:n tai*:n samalla tavalla.
Samat merkit kussakin tilassa:
| Merkki | Parametrin arvo | Koko URL | Lomaketiedot | Tiukka RFC 3986 |
|---|---|---|---|---|
| välilyönti | %20 | %20 | + | %20 |
& | %26 | & | %26 | %26 |
/ | %2F | / | %2F | %2F |
+ | %2B | + | %2B | %2B |
~ | ~ | ~ | %7E | ~ |
! | ! | ! | %21 | %21 |
* | * | * | * | %2A |
é | %C3%A9 | %C3%A9 | %C3%A9 | %C3%A9 |
Teksti koodataan aina UTF-8:na ja heksadesimaalinumerot kirjoitetaan aina isoilla kirjaimilla. Jos syöte sisältää jo jaksoja kuten %20, huomautus kertoo siitä ja tarjoaa painikkeen Dekoodaa sen sijaan, jotta et koodaa tekstiä vahingossa kahdesti.
Jos haluat välittää JSONin kyselyn parametrissa, tiivistä se JSON-muotoilijassa ja koodaa tilassa Parametrin arvo: {"id":7,"tags":["a","b"]} muuttuu muotoon %7B%22id%22%3A7%2C%22tags%22%3A%5B%22a%22%2C%22b%22%5D%7D. Toimii myös toisin päin: dekoodaa parametri täällä ja muotoile se siellä.
URL decode -ongelmat: plusmerkit, %2520 ja rikkinäiset jaksot
Dekoodaus toimii yleensä suoraan, mutta neljä tilannetta saa ihmiset kompastumaan. Työkalu hoitaa jokaisen niistä virheilmoituksen sijaan:
- Plusmerkki tarkoittaa välilyöntiä lomaketiedoissa ja useimmissa kyselymerkkijonoissa. Dekoodaa + välilyönniksi on oletuksena päällä, joten
caf%C3%A9+au+laitdekoodautuu muotooncafé au lait. Kokonaisessa URL-osoitteessa vain?-merkin jälkeiset plusmerkit lasketaan välilyönneiksi, koska polussa plus on tavallinen merkki. Kytke asetus pois, kun plusmerkki on tarkoitettu kirjaimellisesti. Plus, joka on koodattu muodossa%2B, pysyy aina plusmerkkinä. - Kaksoiskoodaus syntyy, kun kaksi koodikerrosta koodaa saman arvon, ja RFC 3986 varoittaa siitä nimenomaisesti. Jokainen
%muuttuu muotoon%25, joten välilyönti muuttuu%20:sta muotoon%2520. Jos dekoodattu tulos sisältää yhä jaksoja kuten%20, työkalu kertoo, että teksti on luultavasti koodattu kahdesti, ja tarjoaa painikkeen Dekoodaa uudelleen. - Virheellinen jakso, eli
%, jota ei seuraa kaksi heksadesimaalinumeroa, kuten100%tai%G1, saa JavaScriptindecodeURIComponent-funktion heittämään URIError-virheen. Täällä tällaiset jaksot jätetään ennalleen, merkitään punaisella ja lasketaan, ja loput tekstistä dekoodataan. - Vanhat Latin-1-linkit ovat peräisin ajalta ennen UTF-8:aa, jolloin jotkin sivustot koodasivat
é:n yhtenä tavuna%E9.caf%E9ei ole kelvollista UTF-8:aa, jotendecodeURIComponentepäonnistuu ja Pythoninunquotepalauttaacafja sen perässä korvausmerkin U+FFFD. Työkalu lukee tällaiset tavut Windows-1252:na, dekoodaacaf%E9:n muotooncaféja lisää huomautuksen asiasta.
Dekoodatun tekstin ohjausmerkit, kuten sarkain tai nollatavu, näytetään näkyvinä symboleina kuten ␉ ja ␀, mutta Kopioi kopioi oikean tekstin.
URL-jäsennin: jaa URL osiin ja muokkaa kyselyn parametreja
Liitä osoite URL-kenttään URL-jäsennin-välilehdellä, niin se jaetaan osiin: Protokolla, Isäntä, Portti, Polku ja Fragmentti, sekä Käyttäjätunnus ja Salasana, jos URL-osoitteessa on ne. Arvot näytetään dekoodattuina, joten välilehti on myös nopein tapa dekoodata URL-parametrit: luet juoksukeng%C3%A4t+naisille:n sijaan juoksukengät naisille. Muokkaus toimii kumpaankin suuntaan, kuten selaimen osoiterivi ja Postmanin parametritaulukko. Muuta kenttää, ja URL kirjoitetaan heti uudelleen oikein koodattuna; muuta URL-osoitetta, ja kaikki osat luetaan uudelleen. Osat, joihin et koske, pysyvät täsmälleen entisellään merkki merkiltä.
Kyselyn parametrit -taulukko listaa jokaisen parametrin Nimi- ja Arvo-kenttineen. Poista valinta kohdasta Mukaan URL-osoitteeseen, niin parametri jää pois osoitteesta mutta pysyy taulukossa, mikä auttaa, kun etsit pyynnön rikkovaa parametria. Lisää parametri, Poista parametri ja Lajittele aakkosjärjestykseen tekevät sen, mitä nimet kertovat. Toistuvat nimet kuten tag=a&tag=b ja arvottomat nimet kuten ?debug säilyvät. Välilyönnit parametreissa määrää, kirjoitetaanko välilyönnit muodossa %20 vai +; oletuksena se seuraa liittämääsi URL-osoitetta.
Kirjautumis- ja maksulinkeissä on usein toinen URL parametrin sisällä, koodattuna niin, etteivät sen omat ? ja & sekoitu ulomman osoitteen merkkeihin:
https://auth.example.com/authorize?client_id=abc&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Ftab%3D2
Arvo, joka on itse URL, tyypillisesti kentissä redirect_uri, return, url tai next, saa painikkeen Muokkaa sisäistä URL-osoitetta. Sisempi osoite https://app.example.com/callback?tab=2 aukeaa omana tasonaan omine osineen ja parametreineen, murupolku (Pää-URL › redirect_uri) vie takaisin, ja jokainen muutos koodataan takaisin ulompaan URL-osoitteeseen. Kopioi pää-URL kopioi tuloksen. Tämä toimii useita tasoja syvälle.
Kun #-merkin jälkeinen osa näyttää parametreilta, kuten #access_token=...&state=... OAuthin implicit flow’ssa tai #/search?q=shoes yhden sivun sovellusten reiteissä, myös ne listataan toisessa taulukossa, Fragmentin parametrit.
Jäsennin huomauttaa myös ongelmista: URL-osoite ilman protokollaa, jota selaimet pitävät suhteellisena linkkinä; portti, joka on 0:n ja 65535:n välisen alueen ulkopuolella; sekä merkit, jotka on koodattava, kuten välilyönnit, ääkköset, " tai <, jotka Koodaa ne korjaa yhdellä painalluksella. Teksti ilman osoitetta, kuten a=1&b=2, luetaan kyselymerkkijonona. Kansainvälistetystä verkkotunnuksesta (englanniksi) työkalu näyttää Punycode-muodon, jota DNS ja selaimet käyttävät, joten münchen.de muuttuu muotoon xn--mnchen-3ya.de, ja xn---alkuinen verkkotunnus saa luettavan muotonsa.
Kopioi URL kopioi valmiin osoitteen, Avaa avaa sen uuteen välilehteen (vain http- ja https-linkit) ja Kopioi JSON-muodossa antaa parametrit JSON-objektina, jossa toistuvat nimet kootaan taulukoksi.
UTM- ja muiden seurantaparametrien poisto URL-osoitteesta
Uutiskirjeiden, mainosten ja sosiaalisten verkostojen linkeissä on parametreja, jotka kertovat sivustolle vain sen, mistä kävijä tuli. UTM-parametrit (englanniksi) utm_source, utm_medium, utm_campaign, utm_term ja utm_content periytyvät Urchinista, Google Analyticsin edeltäjästä. Klikkaustunnukset kuten fbclid (Facebook), gclid (Google Ads) ja msclkid (Microsoft Advertising) lisäävät alustat itse.
Jäsennin merkitsee nämä seuranta-tunnisteella, ja Poista seuranta (n) poistaa ne kaikki kerralla. Kaikkien utm_*-parametrien lisäksi se tunnistaa yli 20 muuta, kuten ttclid (TikTok), mc_cid (Mailchimp) ja _hsenc (HubSpot). Sivun tarvitsemat parametrit jäävät paikoilleen: kauppalinkissä, jonka Kokeile esimerkkiä lataa, Poista seuranta (4) poistaa parametrit utm_source, utm_medium, utm_campaign ja fbclid ja säilyttää q:n, size:n, return:n ja #reviews-fragmentin.
QR-koodiin päätyvä linkki kannattaa puhdistaa ensin täällä. Ilman seurantaparametreja se on lyhyempi, ja lyhyempi linkki antaa vähemmän tiheän koodin, jonka skannaaminen on helpompaa.
Mitä prosenttikoodaus on ja miten merkeistä tulee %XX
Prosenttikoodaus (englanniksi), jota kutsutaan myös URL-koodaukseksi, kirjoittaa merkin muodossa % ja kaksi heksadesimaalinumeroa. URL-osoite saa sisältää vain rajatun joukon ASCII-merkkejä, ja osalla niistä on tehtävä: ? aloittaa kyselyn, & erottaa parametrit, # aloittaa fragmentin. RFC 3986 kutsuu näitä varatuiksi merkeiksi (: / ? # [ ] @ sekä ! $ & ' ( ) * + , ; =). Kirjaimet, numerot ja - . _ ~ ovat varaamattomia, eikä niitä tarvitse koskaan koodata. Kaikki muu, sekä jokainen tavallisena datana käytetty varattu merkki, koodataan.
ASCII-merkistön ulkopuoliset merkit muutetaan ensin UTF-8-tavuiksi, ja jokainen tavu saa oman %XX-jaksonsa:
éon U+00E9, jonka UTF-8 tallentaa kahtena tavuna C3 A9, joten siitä tulee%C3%A9.€on U+20AC, kolme tavua:%E2%82%AC.- Emoji kuten U+1F600 (virnistävä naama) vie neljä tavua:
%F0%9F%98%80.
%c3%a9 ja %C3%A9 tarkoittavat samaa, mutta RFC 3986 suosittelee isoja kirjaimia, ja niitä työkalu kirjoittaa. Prosenttikoodauksen taulukko yleisimmistä merkeistä:
| Merkki | Koodattu | Merkki | Koodattu |
|---|---|---|---|
| välilyönti | %20 | + | %2B |
! | %21 | , | %2C |
" | %22 | / | %2F |
# | %23 | : | %3A |
$ | %24 | ; | %3B |
% | %25 | = | %3D |
& | %26 | ? | %3F |
' | %27 | @ | %40 |
( | %28 | [ | %5B |
) | %29 | ] | %5D |
* | %2A | rivinvaihto | %0A |
URL-koodaus JavaScriptissä, Pythonissa ja PHP:ssä
Jokaisessa kielessä on tähän omat funktionsa, ja ne eroavat lähinnä siinä, miten ne käsittelevät välilyöntejä, vinoviivoja ja merkkejä ! ' ( ) * ~.
JavaScriptissä on encodeURIComponent (englanniksi) arvolle, encodeURI kokonaiselle osoitteelle ja URLSearchParams lomakekoodaukselle:
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 ei muuta +:aa välilyönniksi, ja se heittää URIError-virheen virheellisestä jaksosta, kuten 100%.
Pythonissa funktiot ovat moduulissa urllib.parse. quote säilyttää /:n oletuksena (safe='/') ja koodaa muuten kaiken paitsi RFC 3986:n varaamattomat merkit. quote_plus kirjoittaa välilyönnit muodossa + ja koodaa myös /:n:
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'
PHP:ssä urlencode koodaa kuten HTML-lomake ja kirjoittaa välilyönnin muodossa +, kun taas rawurlencode noudattaa RFC 3986:ta ja kirjoittaa %20:n:
urlencode("café & crème"); // "caf%C3%A9+%26+cr%C3%A8me"
rawurlencode("café & crème"); // "caf%C3%A9%20%26%20cr%C3%A8me"
rawurlencode antaa saman tuloksen kuin Tiukka RFC 3986. urlencode vastaa tilaa Lomaketiedot, paitsi että se koodaa *:n muotoon %2A.
Usein kysytyt kysymykset
Koodataanko välilyönti muodossa %20 vai +?
%20 toimii kaikkialla URL-osoitteessa. + tarkoittaa välilyöntiä vain kyselymerkkijonossa ja lomaketiedoissa, eli muodossa, jonka HTML-lomakkeet lähettävät. Polussa + on tavallinen plusmerkki, joten /a+b pysyy muodossa /a+b. Kun kyselyn arvoon tarvitaan oikea plusmerkki, kirjoita se muodossa %2B. Työkalussa Lomaketiedot kirjoittaa välilyönnit muodossa + ja kolme muuta tilaa muodossa %20.
Mitä %20, %2F ja %3D tarkoittavat URL-osoitteessa?
Ne ovat koodattuja merkkejä: %20 on välilyönti, %2F vinoviiva ja %3D yhtäsuuruusmerkki. Muita usein näkyviä ovat %26 (&), %3F (?), %3A (:), %2C (pilkku) ja %27 (heittomerkki). Kaksi numeroa on merkin koodi heksadesimaalilukuna. Ääkköset ja muut ASCII-merkistön ulkopuoliset merkit vievät kahdesta neljään tällaista paria, esimerkiksi %C3%A9 merkille é. Liitä koko merkkijono dekooderiin, niin näet sen luettavana.
Mitä eroa on encodeURI- ja encodeURIComponent-funktioilla?
encodeURI on tarkoitettu kokonaiselle osoitteelle, ja se jättää rakenteen merkit, kuten : / ? # & =, rauhaan. encodeURIComponent on tarkoitettu yhdelle osalle, parametrin arvolle tai polun osalle, ja se koodaa nekin merkit, joten https://example.com/?a=1&b=2 muuttuu muotoon https%3A%2F%2Fexample.com%2F%3Fa%3D1%26b%3D2. Tässä työkalussa Parametrin arvo vastaa funktiota encodeURIComponent, ja Koko URL on kuin encodeURI, mutta säilyttää olemassa olevat jaksot, kuten %20, sen sijaan että muuttaisi ne muotoon %2520.
Miten poistan UTM-parametrit URL-osoitteesta?
Liitä linkki URL-jäsennin-välilehdelle ja paina Poista seuranta (n). Se poistaa kerralla kaikki utm_*-tunnisteet sekä klikkaustunnukset kuten fbclid ja gclid. Paina sitten Kopioi URL. Jos haluat poistaa vain osan, käytä Poista parametri -painiketta niillä riveillä, joita et halua.
Onko URL-koodaus sama asia kuin salaus tai Base64?
Ei. URL-koodaus ei salaa mitään: kuka tahansa voi dekoodata caf%C3%A9:n takaisin muotoon café, joten se ei koskaan suojaa salasanaa tai tunnistetta. Se vain tekee merkeistä turvallisia käyttää osoitteessa. Base64 on eri koodaus, joka muuttaa mitä tahansa dataa, myös binääritiedostoja, 64 merkin merkkijonoksi. URL-osoitteessa oleva Base64-merkkijono tarvitsee silti +-, /- ja =-merkkinsä koodattuina, ellei käytetä URL-turvallista versiota, jonka Base64-kooderi ja -dekooderi osaa tuottaa.
Lähetetäänkö tai tallennetaanko liittämäni URL-osoitteet?
Ei. Koodaus, dekoodaus ja jäsennys tapahtuvat selaimessasi, eikä mitään liittämääsi lähetetä palvelimelle. Sillä on merkitystä, koska URL-osoitteissa on usein pääsytunnisteita, istuntotunnuksia tai salasanan palautuskoodeja. Selain muistaa vain valitsemasi välilehden ja asetukset, ei koskaan tekstejä. Ainoa asia, joka lataa osoitteen, on Avaa, joka avaa sen uuteen välilehteen aivan kuten linkin napsauttaminen.
Lisää ohjelmoijien työkaluja löytyy Kehittäjät-kategoriasta, ja formaatista toiseen muuntavat työkalut on koottu kategoriaan Muuntimet. Jos haluat nähdä, missä kaksi pitkää URL-osoitetta eroavat, esimerkiksi toimiva ja epäonnistuva API-kutsu, liitä ne tekstien vertailutyökaluun ja vertaa merkeittäin.