URL Encoder & Decoder
Percent-encode teks untuk URL dan query string, nyahkod URL yang dikodkan, dan pecahkan mana-mana URL kepada bahagiannya dengan parameter query yang dinyahkod.
Berjalan dalam pelayar andaTanpa pendaftaranTiada apa dimuat naik
Komponen
Parameter query
Cara menggunakan URL Encode / Decode
- Pilih Kodkan atau Nyahkod.
- Semasa mengekod, pilih Komponen untuk satu nilai query atau segmen laluan, URL penuh untuk mengekalkan struktur URL, atau Data borang untuk
application/x-www-form-urlencoded. - Tampal teks anda. Hasil muncul serta-merta; escape yang rosak dilaporkan bersama kedudukannya.
- Tampal URL lengkap ke dalam Penghurai URL untuk melihat hos, laluan, fragmen dan setiap parameter query yang dinyahkod.
Apakah itu pengekodan URL?
URL hanya boleh mengandungi set aksara ASCII yang terhad (RFC 3986). Semua yang lain, termasuk ruang, huruf bukan Inggeris dan aksara yang mempunyai makna khas seperti &, ? dan #, ditulis sebagai tanda peratus diikuti dua digit hex bagi setiap bait UTF-8. Ruang menjadi %20 dan é menjadi %C3%A9.
encodeURIComponent lwn. encodeURI
| Fungsi | Tidak diubah | Gunakan untuk |
|---|---|---|
encodeURIComponent | A-Z a-z 0-9 - _ . ~ | Satu nilai query, segmen laluan atau nama parameter |
encodeURI | Juga : / ? # [ ] @ ! $ & ' ( ) * + , ; = | Keseluruhan URL yang strukturnya mesti kekal |
Menggunakan encodeURI pada nilai query ialah pepijat klasik: & di dalam nilai tidak di-escape, jadi ia memecahkan parameter kepada dua. Mod Komponen alat ini juga meng-escape ! ' ( ) * untuk pematuhan ketat RFC 3986.
%20 atau + untuk ruang?
Dalam laluan, ruang mesti %20. Dalam penghantaran borang HTML (application/x-www-form-urlencoded) dan banyak query string, ruang ditulis sebagai +. Semasa menyahkod, hidupkan Anggap + sebagai ruang untuk data borang, dan matikannya apabila tanda tambah literal penting, seperti dalam jane+test@example.com.
Soalan lazim
Mengapa saya mendapat “Escape rosak” semasa menyahkod?
% mesti diikuti tepat dua digit hex. Tanda peratus literal, seperti dalam “diskaun 50%”, sepatutnya dikodkan sebagai %25. Ralat menunjukkan kedudukan jujukan yang salah.Apakah maksud “Jujukan bait UTF-8 tidak sah”?
%E9 untuk é dan bukannya %C3%A9), atau rentetan dipotong di tengah-tengah aksara.Patutkah saya mengekod seluruh URL atau hanya parameter?
= dan &. Mengekod URL lengkap dengan mod komponen juga akan meng-escape :// dan merosakkannya.Adakah pengekodan berganda satu masalah?
%20 menjadi %2520. Jika anda melihat %25 diikuti digit hex, nilai itu mungkin dikodkan dua kali. Nyahkod dua kali untuk mendapatkan yang asal.