URL Encoder at Decoder

I-percent-encode ang text para sa mga URL at query string, i-decode ang mga encoded na URL, at hatiin ang kahit anong URL sa mga bahagi nito kasama ang na-decode na query parameter.

Tumatakbo sa browser moWalang sign-upWalang ina-upload

Na-encode

Paano gamitin ang URL Encode / Decode

  1. Piliin ang I-encode o I-decode.
  2. Kapag nag-e-encode, piliin ang Component para sa iisang query value o path segment, Buong URL para mapanatili ang istruktura ng URL, o Form data para sa application/x-www-form-urlencoded.
  3. I-paste ang iyong text. Agad lumalabas ang resulta; iniuulat ang mga sirang escape kasama ang posisyon nila.
  4. Mag-paste ng kumpletong URL sa URL parser para makita ang host, path, fragment at bawat query parameter nito na na-decode.

Ano ang URL encoding?

Limitadong set lang ng ASCII character ang puwedeng ilagay sa URL (RFC 3986). Lahat ng iba, kasama ang mga space, letrang hindi English at mga character na may espesyal na kahulugan gaya ng &, ? at #, ay isinusulat bilang percent sign na sinusundan ng dalawang hex digit para sa bawat UTF-8 byte. Nagiging %20 ang space at nagiging %C3%A9 ang é.

encodeURIComponent vs. encodeURI

FunctionHindi ginagalawGamitin para sa
encodeURIComponentA-Z a-z 0-9 - _ . ~Iisang query value, path segment o pangalan ng parameter
encodeURIPati : / ? # [ ] @ ! $ & ' ( ) * + , ; =Buong URL na dapat manatili ang istruktura

Klasikong bug ang paggamit ng encodeURI sa query value: hindi nae-escape ang & sa loob ng value, kaya nahahati sa dalawa ang parameter. Ine-escape din ng Component mode ng tool na ito ang ! ' ( ) * para sa mahigpit na pagsunod sa RFC 3986.

%20 o + para sa space?

Sa mga path, dapat %20 ang space. Sa mga HTML form submission (application/x-www-form-urlencoded) at maraming query string, isinusulat ang space bilang +. Kapag nagde-decode, i-enable ang Ituring ang + bilang space para sa form data, at i-disable ito kapag mahalaga ang literal na plus sign, gaya ng sa jane+test@example.com.

Mga madalas itanong

Bakit may “Sirang escape” kapag nagde-decode ako?
Dapat sundan ng eksaktong dalawang hex digit ang %. Ang literal na percent sign, gaya ng sa “50% off”, ay dapat na-encode bilang %25. Ipinapakita ng error ang posisyon ng maling sequence.
Ano ang ibig sabihin ng “Invalid na UTF-8 byte sequence”?
Hindi na-encode bilang UTF-8 ang mga byte, madalas dahil ginawa ang text ng legacy system na gumagamit ng Latin-1 (halimbawa %E9 para sa é sa halip na %C3%A9), o naputol ang string sa gitna ng isang character.
Dapat ko bang i-encode ang buong URL o ang mga parameter lang?
I-encode nang hiwalay ang bawat pangalan at value ng parameter gamit ang component encoding, saka pagdugtungin gamit ang = at &. Kapag na-encode ang buong URL sa component mode, mae-escape din ang :// at masisira ito.
Problema ba ang double encoding?
Oo. Kapag na-encode ang string na naka-encode na, nagiging %2520 ang %20. Kung makakita ka ng %25 na sinusundan ng hex digit, malamang dalawang beses na-encode ang value. I-decode ito nang dalawang beses para makuha ang orihinal.

Mga kaugnay na tool