Libreng Converter

URL Encoder / Decoder

I-encode at i-decode ang mga URL at mga bahagi ng URI kaagad sa iyong browser. Libre, pribado, at walang kinakailangang pag-upload.

O kaya

Tungkol sa tool na ito

Ang URL encoding (pormal na percent-encoding, na tinukoy sa RFC 3986) ay nagsasalin ng mga character na may espesyal na kahulugan sa mga URL — mga puwang, slash, ampersand, hash mark — sa isang ligtas na anyo gamit ang mga porsyentong palatandaan na sinusundan ng mga hex na digit. Ang space character ay nagiging %20 (o + sa form-encoded contexts), ang ampersand ay nagiging %26, at iba pa. Kung wala ang pag-encode na ito, ang mga espesyal na character ay bibigyang-kahulugan bilang URL syntax sa halip na bilang literal na data, sinira ang URL o nagdudulot ng hindi sinasadyang pag-uugali.

Mayroong dalawang magkakaugnay ngunit natatanging pag-encode. Ang karaniwang URL component encoding ay gumagamit ng %-escapes para sa lahat ng bagay sa labas ng unreserved character set: A-Z, a-z, 0-9, hyphen, underscore, period, tilde. Itinuturing din ng variant na naka-encode ng form (application/x-www-form-urlencoded) ang mga espasyo bilang plus sign at gumagamit ng iba't ibang panuntunan para sa ilang iba pang character. Ang encodeURIComponent ng JavaScript ay gumagamit ng mahigpit na component encoding; Gumagamit ang encodeURI ng mas pinahihintulutang form na nagpapanatili ng mga character ng istruktura ng URL.

Ang tool na ito ay nag-aalok ng parehong pag-encode at pag-decode. Binabalot ng Encode mode ang bawat karakter na nangangailangan ng pagtakas sa %HH na format; Binabaliktad ng decode mode ang pagbabago. Parehong tumatakbo nang buo sa iyong browser gamit ang built-in na JavaScript URL function, kaya walang data na ipinapadala kahit saan.

Bakit I-encode o I-decode ang mga URL

Anumang oras ang data ay kasama sa isang URL — query string parameters, path segment na naglalaman ng user input, redirect target — wastong encoding ay kinakailangan. Ang pagkabigong mag-encode ay gumagawa ng mga URL na nasisira kapag lumitaw ang mga espesyal na character, naglalabas ng mga hangganan ng parameter sa mga string ng query (ginagawa ang &x=1 sa isang hiwalay na parameter), o na-block ng mga web server bilang mga hindi maayos na kahilingan.

Ang pag-decode ay ang kabaligtaran: pagkuha ng orihinal na data mula sa isang naka-encode na URL. Ang mga address bar ng browser ay madalas na nagpapakita ng mga URL sa naka-encode na anyo; Ang pag-decode ay nagpapakita kung ano ang aktwal na nilayon. Nakikinabang lahat ang pag-log, pag-debug, at pagsusuri sa seguridad mula sa mga na-decode na URL na nagpapakita ng mga orihinal na parameter at path.

Paano gamitin

Mag-paste ng string, pumili ng direksyon.

  1. Pumili ng encode o decode: Binabalot ng Encode ang mga hindi ligtas na character sa %HH na format. Decode reverses %HH escapes pabalik sa literal na mga character.
  2. Magdagdag ng input text: I-paste ang string para i-encode o i-decode. Para sa pag-encode, ito ay karaniwang isang literal na halaga na may mga puwang, mga espesyal na character, o hindi ASCII na nilalaman. Para sa pag-decode, ito ay isang URL o bahagi ng URL na naglalaman ng %HH escape.
  3. Magbalik-loob: Inilalapat ng tool ang encodeURIComponent o decodeURIComponent. Ang naka-encode na output ay ligtas na i-embed sa isang URL; ang decoded na output ay ang orihinal na literal na halaga.
  4. Kopyahin o i-download: Gamitin ang resulta kung saan mo ito kailangan. Ang mga naka-encode na halaga ay umaangkop sa mga URL; ipinapakita ng mga na-decode na halaga ang orihinal na data.

Mga Pangkaraniwang Paggamit

Mga Detalye ng Teknikal

encodeURIComponent ine-encode ang bawat character sa labas ng unreserved set [A-Za-z0-9-_.~]. Ang mga espasyo ay naging %20, kasama ang mga palatandaan ay naging %2B, katumbas ng mga palatandaan na naging %3D, at iba pa. Ang mga character sa labas ng ASCII ay unang naka-encode sa UTF-8 at pagkatapos ang bawat byte ay %-escaped.

Ang encodeURI ay mas pinahihintulutan at nilayon para sa buong URL kaysa sa mga bahagi. Hindi ito nakatakas sa /, ?, &, =, #, at ilang iba pa dahil ang mga character na iyon ay may kahulugang URL-syntax. Para sa pag-embed ng data ng user sa isang URL, ang encodeURIComponent ay halos palaging tamang pagpipilian.

Binabaliktad ng decodeURIComponent ang %-escapes, na nagpapatunay na ang bawat pagtakas ay mahusay na nabuo at ang mga resultang byte ay bumubuo ng wastong UTF-8. Ang malformed input ay nagdudulot ng error sa halip na gumawa ng basura.

Pinakamahusay na Kasanayan

Mga madalas itanong

Anong mga character ang nangangailangan ng pag-encode ng URL?
Ang mga reserbang character (&, =, ?, #, /, :, @) at mga hindi ligtas na character (mga puwang, <, >, {, }, |, ^, ~, [, ], `) ay dapat na naka-encode. Ang mga alphanumeric na character at -_.~ ay ligtas at hindi nangangailangan ng pag-encode.
Ano ang pagkakaiba sa pagitan ng encodeURI at encodeURIComponent?
Ang encodeURI ay nag-encode ng buong URL ngunit pinapanatili ang mga nakareserbang character (://?#). encodeURIComponent ine-encode ang lahat maliban sa -_.!~*'() — gamitin ito para sa mga value ng parameter ng query. Ang tool na ito ay nag-aalok ng parehong mga mode.
Paano naka-encode ang mga puwang sa mga URL?
Maaaring i-encode ang mga espasyo bilang %20 (karaniwang porsyento-encoding) o + (form encoding). Tama ang %20 para sa mga path ng URL, habang ginagamit ang + sa mga string ng query mula sa mga HTML form. Gumagamit ang tool na ito ng %20 bilang default.
Maaari ba akong mag-encode ng mga character na Unicode?
Oo. Ang mga character na Unicode ay unang naka-encode sa UTF-8 byte, pagkatapos ang bawat byte ay percent-encoded. Halimbawa, ang '日' ay nagiging %E6%97%A5 (tatlong UTF-8 byte, bawat porsyentong naka-encode).
Dapat ko bang gamitin ang encodeURI o encodeURIComponent?
Halos palaging encodeURIComponent. Gumamit lang ng encodeURI kung mayroon kang kumpletong URL at gusto mong mapanatili ang istraktura nito — karaniwang bihira dahil gagawa ka pa rin ng mga URL mula sa mga bahagi.
Na-upload ba ang aking data sa isang server?
Hindi. Ang pag-encode at pag-decode ng URL ay ganap na nangyayari sa iyong browser.
Pinangangasiwaan ba nito ang Unicode emoji?
Oo. Ang emoji ay mga multi-byte na UTF-8 na sequence; ang encoder ay gumagawa ng isang chain ng %-escaped byte na ang mga decoder ay wastong ibinabalik sa orihinal na emoji.
Paano kung ang aking input ay may %HH-looking strings na hindi talaga naka-encode?
Ginagawang %25 ng pag-encode ang bawat %, pagkatapos ay muling inilalapat ang pagtakas para sa iba. Ang pag-decode ng mahigpit na pag-input ay naghagis ng mga error sa mga maling escape; Maaaring hindi tama ang pagde-decode ng mga string na mukhang hindi maliwanag.