URL Encoder at Parser

Files at data

I-encode, i-decode at hatiin ang URL. Parehong encoder ipinapakita.

URL
https%3A%2F%2Fjuandesk.com%2Fsearch%3Fq%3D13th%20month%26sort%3Dnew%23top
Na-encode — isang halaga
Mga karakter73
Parameter2
Parehong encoding
Isang halaga — encodeURIComponent
https%3A%2F%2Fjuandesk.com%2Fsearch%3Fq%3D13th%20month%26sort%3Dnew%23top
Buong URL — encodeURI
https://juandesk.com/search?q=13th%20month&sort=new#top
Ang mga bahagi
Protocolhttps
Hostjuandesk.com
Path/search
Queryq=13th%20month&sort=new
Fragmenttop
Query parameter
q13th month
sortnew
Magkaiba ang dalawang encoding para sa tekstong ito, at iyan mismo ang pagkakataong mahalaga ang pagpili. Gamitin ang anyong component para sa iisang halagang ilalagay sa URL; gamitin lang ang anyong buong-URI para sa URL na buo na.

Paano gamitin

Para saan ito

Gawing ligtas ilagay sa loob ng web link ang isang salita o parirala, ibalik sa nababasang teksto ang link na puno ng code gaya ng %20, o makita ang mahabang web address na hinati sa mga bahagi nito.

Bago magsimula

Ihanda ang link o ang teksto — kinopya mula sa address bar ng browser, email o form. Walang umaalis sa browser mo sa anumang i-paste mo.

  1. I-paste ang address o ang teksto

    I-paste ito sa URL o halaga, kapalit ng halimbawa. Puwedeng buong web address ito o isang salita o parirala lang.

  2. Piliin ang ipapakita

    Sa Ipakita, piliin ang Na-encode — isang halaga para sa iisang bahaging ilalagay sa loob ng link, gaya ng salitang hahanapin o pangalan; ito ang ligtas na pili. Piliin ang Na-encode — buong URL para lang sa buong address na kailangang gawing ligtas ang espasyo o letrang may accent. Piliin ang Na-decode para ibalik sa nababasang teksto ang %20 at mga katulad na code.

  3. Gawing espasyo ang +, kung galing sa form

    I-tsek ang I-decode ang + bilang espasyo kapag galing ang teksto sa web form o search box, kung saan + ang pagkakasulat ng espasyo. Kung hindi, iwanang walang tsek, dahil sa ibang lugar ay plus talaga ang ibig sabihin ng +.

  4. I-convert at kopyahin

    Pindutin ang I-convert para makita ang sagot — nagbabago rin ito habang nagta-type ka. Pindutin ang Kopyahin sa itaas para kunin ito.

Pagbasa ng resulta

  • URL: ang resulta sa anyong pinili mo sa Ipakita, kasama sa ilalim ang pangalan ng anyong iyon.
  • Parehong encoding: ang bersyong pang-isang-halaga at pang-buong-URL nang magkasama, para makita mo kung magkaiba sila para sa teksto mo.
  • Ang mga bahagi: para sa buong web address, ang mga piraso nito — gaya ng Host (pangalan ng site), ng Path (ang pahina) at ng Query (lahat pagkatapos ng ?).
  • Query parameter: ang bawat pangalan at halaga mula sa query, naka-decode para mabasa mo.

Kung may problema

  • Nasira ang link matapos mong lagyan ng halaga: malamang ginamit mo ang Na-encode — buong URL sa halaga. Hindi nito ginagalaw ang & at #, at pinuputol nila ang link, kaya gamitin ang Na-encode — isang halaga.
  • Bumalik ang teksto nang walang binago at may note na Hindi ito ma-percent-decode: may % itong hindi nagsisimula ng code, gaya ng "100% sure". Ipinapakita ang teksto nang walang binago para makita mo kung ano ang naroon.
  • Nanatiling plus ang mga plus: i-tsek ang I-decode ang + bilang espasyo kung galing sa form ang teksto.

Ano ito

Hindi magkapalit ang dalawang encoder, at iyon ang buong tool.

Ang encodeURIComponent ay ini-escape ang / ? : @ & = + $ # — para sa isang piraso na ipapasok sa URL. Ang encodeURI ay hindi — para sa buong URL na nabuo na.

Ang paggamit ng pangalawa kung saan kailangan ang una ang pinakakaraniwang bug sa URL: ang halagang may & ay nahahati sa dalawang parameter, at ang may # ay pinuputol ang URL sa fragment. Mukha silang kasalanan ng server at hindi.

At ang plus ay espasyo sa query string at wala nang iba. Ang form ay nag-e-encode ng espasyo bilang +; ang URL specification ay %20. Kaya ang decoder na nagpapalit ng bawat plus ay sumisira sa tunay na plus sa isang path.

Mga tanong

Anong encoding ang dapat kong gamitin?

Kung nag-e-encode ka ng IISANG BAHAGING papasok sa URL — isang halaga ng query, isang bahagi ng path — gamitin ang anyong component, na ine-escape ang nakareserbang karakter na / ? : @ & = + $ at #. Kung nag-e-encode ka ng URL na buo na, gamitin ang anyong buong-URL, na iniiwan silang tahimik dahil ginagawa nila ang trabaho nila. Ang pagbaligtad nito ang pinakakaraniwang bug sa URL.

Ano ang mababali kapag ginamit ko ang anyong buong-URL sa isang halaga?

Nakakaligtas nang hindi na-escape ang nakareserbang karakter at nababago ang kahulugan ng URL. Ang halagang may & ay nahahati sa dalawang query parameter. Ang halagang may # ay pinuputol ang URL sa fragment, kaya ang lahat ng kasunod ay hindi na nakakarating sa server. Mukha silang depekto ng server at hindi naman.

Espasyo ba o plus ang +?

Depende sa kung nasaan ito. Sa query string na gawa ng HTML form, + ang encoding ng espasyo. Saanman pa sa URL, ang espasyo ay %20 at ang + ay literal na plus. Kaya ang pag-decode ng + bilang espasyo ay sumisira sa tunay na plus sa path, at ang hindi pag-decode nito ay nag-iiwan ng plus sa halaga ng form. Switch ito sa pahinang ito, at nakapatay bilang default.

Bakit hindi nag-decode ang teksto ko?

May % ito na hindi nagsisimula ng wastong escape — ang “100% sure” ang karaniwang salarin. Bumabagsak ang pag-decode doon, kaya ipinapakita ang teksto nang hindi nababago at may paalala sa halip na error, dahil idinikit mo ito para makita kung ano ito.

Bakit nakalista lahat ng paulit-ulit na query parameter?

Dahil legal ang pag-ulit ng key at magkakaiba ang paghawak dito ng bawat framework — may nagpapanatili sa una, may sa huli, may gumagawa ng listahan. Ang pagsasama sa kanila dito ay magtatago ng tunay na kalabuan, kaya ipinapakita silang lahat at sinasabi ng pahina na nakadepende ang kilos sa kung sino ang nagbabasa.

Ligtas bang mag-paste ng URL na may kasamang kredensiyal?

Walang umaalis sa browser mo sa anumang ipinapaste mo, kaya ligtas ito sa amin. Hindi ito ligtas sa pangkalahatan: ang password sa URL ay napupunta sa log ng server, kasaysayan ng browser at sa Referer header, kaya ang URL na minsan nang nagdala ng isa ay dapat ituring na nabuko na. Tinatakpan ito ng pahinang ito sa halip na ipakita ito pabalik sa iyo.

Ang komputasyon

Ang parehong encoder sa iisang teksto
Input
a&b=c#d
encodeURIComponent — isang halaga
a%26b%3Dc%23d
encodeURI — buong URL
a&b=c#d

Ang pangalawa ay walang binago. Kung halaga ito sa query string, nahati na ito sa dalawang parameter at naputol sa fragment.

Ang plus
Sa query string ng form+ = espasyo
Kahit saan pa sa URL+ = plus

Ituloy pa

Mahalaga

Runs entirely in your browser; nothing is transmitted. Both encodings are shown because using the whole-URL form where the component form is needed is the commonest URL bug — and it produces a URL that looks correct. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.