Käyttöohje
- Valitse Koodaa tai Pura.
- Valitse Komponentti yksittäiselle arvolle (kuten yhdelle kyselyparametrille) tai Koko URL koko osoitteelle.
- Kirjoita tai liitä teksti. Tulos näkyy heti oikealla (tai puhelimella alla).
- Kopioi tulos tai valitse ”Käytä tulos syötteenä” kääntääksesi toiminnon ja tarkistaaksesi edestakaisen muunnoksen.
Näin se toimii
URL-osoitteet saavat sisältää vain rajallisen joukon ASCII-merkkejä. Kaikki muu, myös välilyönnit, aksentilliset kirjaimet ja emojit, kirjoitetaan prosenttiviittauksina: merkki muunnetaan UTF-8-tavuiksi, ja jokainen tavu esitetään %-merkkinä ja kahtena heksadesimaalinumerona. Välilyönnistä tulee %20, é:stä %C3%A9 ja €:sta %E2%82%AC.
Komponenttitila käyttää JavaScriptin encodeURIComponent- ja decodeURIComponent-funktioita. Se koodaa jokaisen merkin, jolla on erikoismerkitys URL-osoitteessa, kuten / ? # & = + : ja @, joten tulos voidaan turvallisesti sijoittaa kyselyn arvoksi tai yksittäiseksi polun osaksi. Muuttumattomina säilyvät vain A–Z, a–z, 0–9 sekä - _ . ! ~ * ' ( ).
Koko URL-osoitteen tila käyttää encodeURI- ja decodeURI-funktioita. Se olettaa, että syöte on jo kokonainen URL-osoite, ja jättää varatut merkit ; , / ? : @ & = + $ # ennalleen, jotta osoite toimii edelleen. Purettaessa decodeURI jättää myös näiden varattujen merkkien koodaukset ennalleen: %2F pysyy muodossa %2F, koska sen muuttaminen /-merkiksi muuttaisi URL-osoitteen merkitystä.
Lomakedata-asetus noudattaa muotoa application/x-www-form-urlencoded, jota selaimet käyttävät HTML-lomakkeita lähetettäessä: välilyönti kirjoitetaan +-merkkinä %20:n sijaan. Tällä asetuksella purettaessa jokaisesta +-merkistä tulee välilyönti, joten todellinen plusmerkki on kirjoitettava muodossa %2B.
Virheellistä syötettä ei koskaan hylätä. Jos %-merkkiä ei seuraa kaksi heksadesimaalinumeroa tai jos koodausjakso ei muodosta kelvollista UTF-8:aa, työkalu näyttää ongelman sijainnin ja säilyttää tekstin, jotta voit korjata sen.
Esimerkit
Arvon sijoittaminen kyselymerkkijonoon
Jos haluat hakea hakusanalla ”Rock & Roll” osoitteessa https://example.com/search?q=…, koodaa vain arvo komponenttitilassa: Rock%20%26%20Roll. Ilman koodausta & päättäisi q-parametrin ja aloittaisi uuden parametrin nimeltä ” Roll”.
Välilyöntejä ja aksenttimerkkejä sisältävän URL-osoitteen korjaaminen
Koko URL-osoitteen tilassa https://example.com/menu/crème brûlée.html muuttuu muotoon https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Vinoviivat ja kaksoispiste säilyvät ennallaan, joten linkki toimii edelleen.
Lokitettujen lomaketietojen lukeminen
Palvelinloki näyttää arvot name=Jane+Doe&city=S%C3%A3o+Paulo. Pura ne komponenttitilassa ”Käsittele + välilyöntinä” käytössä, niin saat luettavaksi name=Jane Doe&city=São Paulo.
Usein kysytyt kysymykset
Mitä eroa on funktioilla encodeURI ja encodeURIComponent?
encodeURIComponent koodaa merkit, jotka erottavat URL-osoitteen osia (/ ? # & = + : @ ja muut), joten se on tarkoitettu yhdelle URL-osoitteen osalle. encodeURI säilyttää nämä merkit, joten se on tarkoitettu kokonaiselle URL-osoitteelle. encodeURI:n käyttäminen kyselyarvoon on yleinen virhe: arvon sisällä oleva & tai = jäisi koodaamatta ja rikkoisi kyselymerkkijonon.
Pitäisikö välilyönti olla %20 vai +?
URL:n polussa välilyönti on aina %20. Kyselymerkkijonossa voi esiintyä kumpikin: %20 on kelvollinen kaikkialla, kun taas + tarkoittaa välilyöntiä vain lomakekoodatussa datassa (application/x-www-form-urlencoded), jota HTML-lomakkeet ja monet palvelinpuolen sovelluskehykset käyttävät kyselymerkkijonojen lukemiseen. Jos et ole varma, käytä %20.
Miksi dekoodaus antaa virheen?
Purku epäonnistuu, kun %-merkkiä ei seuraa kaksi heksadesimaalinumeroa (esimerkiksi ”50% off”) tai kun %-koodatut tavut eivät ole kelvollista UTF-8:aa. Tämä johtuu yleensä siitä, että teksti on koodattu vanhemmalla merkistöllä, kuten Latin-1:llä (é merkkinä %E9 eikä %C3%A9). Virheilmoituksessa näkyy ongelman sijainti.
Miksi %2F ei muuttunut vinoviivaksi Full URL -tilassa?
decodeURI jättää tarkoituksella varattujen merkkien, kuten / ? # & ja =, koodaukset ennalleen, koska niiden purkaminen voisi muuttaa URL:n jakautumista osiin. Käytä Component-tilaa purkaaksesi kaikki koodaukset.
Mitä merkkejä ei koskaan koodata?
Molemmat tilat jättävät merkit A–Z, a–z, 0–9 ja - _ . ! ~ * ' ( ) ennalleen. Full URL -tila jättää lisäksi merkit ; , / ? : @ & = + $ ja # ennalleen.
Tietosuoja
Koodaus ja purkaminen tapahtuvat kokonaan selaimessasi sisäänrakennetuilla JavaScript-funktioilla. Tekstejäsi ja URL-osoitteitasi ei ladata, ei tallenneta eikä sisällytetä analytiikkaan.