Mikä tämä työkalu on?
URL-koodaus (prosenttikoodaus) korvaa URL-osoitteissa kielletyt merkit %-merkillä, jota seuraa niiden tavuarvo heksadesimaalina — välilyönnistä tulee %20, ja 你:stä tulee %E4%BD%A0. Ilman tätä merkit kuten välilyönnit, &, ? ja ei-ASCII-teksti rikkoisivat URL-rakenteen tai tulkittaisiin väärin palvelimilla.
Kaksi yleistä tarvetta, ja tämä työkalu tukee molempia: kyselyparametrin sisään menevän arvon koodaus (komponenttitila — koodaa myös / ? & = ), ja kokonaisen URL:n koodaus rakenne säilyttäen (koko-URL-tila — jättää :// ? & koskemattomiksi).
Yksi historiallinen erikoisuus kannattaa tietää: välilyönti on URL-standardin mukaan oikeaoppisesti %20 (RFC 3986), mutta HTML-lomakkeiden lähetykset ovat perinteisesti koodanneet sen plusmerkiksi — siksi näkee sekä q=hello%20world että q=hello+world käytännössä, ja siksi lomakedatan purku vaatii joskus +-merkin käsittelyä erikseen.
Miksi käyttää sitä?
- Rakenna kyselymerkkijonoja turvallisesti — käyttäjän syöte, jossa on &, = tai välilyöntejä, ei riko URL-osoitettasi.
- Pura pitkiä koodattuja URL-osoitteita lokeista, analytiikasta tai uudelleenohjausketjuista nähdäksesi, mitä ne oikeasti sanovat.
- Oikea UTF-8-käsittely kiinalle, emojeille ja muulle ei-ASCII-tekstille.
- Kaksi tilaa, ettet vahingossa koodaa kokonaisen URL:n : ja / -merkkejä.
- Ilmainen, välitön, ei latausta palvelimelle.
Käyttöohje
- Liitä tekstisi tai URL-osoitteesi syöttökenttään.
- Valitse tila: "Komponentti" kyselyparametreihin meneville arvoille, "Koko URL" kokonaisille osoitteille.
- Klikkaa "Koodaa" tai "Pura".
- Kopioi tulos.
Esimerkki
Syöte
https://example.com/search?q=hello world & 你好Tuloste
Komponenttitila: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Koko URL -tila: https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BDKomponenttitila koodaa myös rakennemerkit; koko-URL-tila säilyttää ne.
Yleiset käyttötapaukset
- Jaettavan URL:n rakentaminen, kun hakusana tai suodatinarvo tulee käyttäjän syötteestä ja saattaa sisältää välilyöntejä, &-merkkejä tai muita erikoismerkkejä.
- Pitkän seuranta- tai uudelleenohjaus-URL:n purkaminen sähköpostista tai mainoskampanjasta nähdäksesi todellisen kohteen ja parametrit ennen klikkausta.
- Vianetsintä, kun kyselyparametria ei lueta oikein palvelimella — syynä on usein varattu merkki, joka olisi pitänyt koodata mutta ei ollut.
- Ei-englanninkielisen (kiina, japani, arabia jne.) arvon valmistelu käytettäväksi URL:n kyselymerkkijonossa.
encodeURIComponent vs. encodeURI käytännössä
Nämä vastaavat suoraan tämän työkalun kahta tilaa ja perustuvat oikeisiin JavaScript-funktioihin, jotka kehittäjät jo tuntevat: encodeURIComponent (komponenttitila) koodaa kaiken paitsi pienen joukon varaamattomia merkkejä, mikä tekee siitä turvallisen mihin tahansa yksittäiseen URL:iin lisättävään arvoon — tätä käytetään kyselyparametriin, polkusegmenttiin tai hash-fragmentin arvoon. encodeURI (koko-URL-tila) jättää URL:n rakennemerkit (:, /, ?, #, &, =) koskemattomiksi, koska se olettaa koodaavasi kokonaisen, jo rakenteellisen URL:n, ei raakaa arvoa — sen käyttäminen yksittäiseen parametriarvoon epäonnistuisi koodaamaan arvon sisältämät & tai = -merkit, mikä on yleisin virhe väärää tilaa valittaessa.
Varatut ja varaamattomat merkit
URL-määritys (RFC 3986) jakaa merkit kahteen ryhmään: varaamattomat merkit (kirjaimet, numerot, - _ . ~) ovat aina turvallisia eikä niitä koskaan koodata, kun taas varatuilla merkeillä (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) on erityismerkitys URL-rakenteessa ja ne vaativat koodauksen vain, kun ne esiintyvät kirjaimellisena datana eivätkä rakenteellisena välimerkkinä. Juuri tästä syystä kaksi tilaa on olemassa — komponenttitila kohtelee varattuja merkkejä suojattavana datana, koko-URL-tila kohtelee niitä säilytettävänä rakenteena. Tämän eron ymmärtäminen on hyödyllisempää kuin sen ulkoa muistaminen, koska se selittää, miksi sama merkki (kuten &) koodataan joskus ja jätetään joskus koskematta riippuen sen roolista kyseisessä URL:ssa.
Usein kysytyt kysymykset
Milloin käytän komponenttitilaa ja milloin koko-URL-tilaa?
Komponenttitila (encodeURIComponent) kun koodaat yksittäisen arvon, joka menee kyselyparametrin sisään — se koodaa myös /, ?, & ja = , jotta ne eivät riko URL:ia. Koko-URL-tila (encodeURI) kun koodaat kokonaisen URL-osoitteen — se säilyttää rakennemerkit, jotta URL toimii edelleen.
Miksi %20 ilmestyi +-merkin sijaan välilyönneille?
Molemmat ovat päteviä eri yhteyksissä. %20 on välilyönnin yleismaailmallinen prosenttikoodaus; + tarkoittaa välilyöntiä vain kyselymerkkijonoissa vanhemmassa application/x-www-form-urlencoded-muodossa. Tämä työkalu käyttää %20:tä, joka toimii kaikkialla.
Miksi purku epäonnistuu virheeseen?
Syöte sisältää virheellisen prosenttisekvenssin, kuten %-merkin, jota ei seuraa kaksi heksanumeroa. Tämä tapahtuu usein, kun URL on katkennut tai purettu kahteen kertaan. Korjaa tai poista rikkinäinen %-sekvenssi.
Mitä on kaksinkertainen koodaus?
Jo koodatun tekstin koodaamista uudelleen: %20:stä tulee %2520, koska itse %-merkki koodataan muotoon %25. Tämä on yleinen virhe — jos purettu tulos sisältää edelleen %-koodeja, pura se vielä kerran.
Käsitteleekö tämä kiinalaisia merkkejä ja emojeja?
Kyllä. Teksti koodataan UTF-8-tavuina, joten 你好:sta tulee %E4%BD%A0%E5%A5%BD ja se puretaan täydellisesti takaisin — sama toimintatapa kuin selaimissa.