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

Dikodkan

Cara menggunakan URL Encode / Decode

  1. Pilih Kodkan atau Nyahkod.
  2. 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.
  3. Tampal teks anda. Hasil muncul serta-merta; escape yang rosak dilaporkan bersama kedudukannya.
  4. 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

FungsiTidak diubahGunakan untuk
encodeURIComponentA-Z a-z 0-9 - _ . ~Satu nilai query, segmen laluan atau nama parameter
encodeURIJuga : / ? # [ ] @ ! $ & ' ( ) * + , ; =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”?
Bait itu tidak dikodkan sebagai UTF-8, selalunya kerana teks dihasilkan oleh sistem lama yang menggunakan Latin-1 (contohnya %E9 untuk é dan bukannya %C3%A9), atau rentetan dipotong di tengah-tengah aksara.
Patutkah saya mengekod seluruh URL atau hanya parameter?
Kodkan setiap nama dan nilai parameter secara berasingan dengan pengekodan komponen, kemudian cantumkannya dengan = dan &. Mengekod URL lengkap dengan mod komponen juga akan meng-escape :// dan merosakkannya.
Adakah pengekodan berganda satu masalah?
Ya. Mengekod rentetan yang sudah dikodkan menukar %20 menjadi %2520. Jika anda melihat %25 diikuti digit hex, nilai itu mungkin dikodkan dua kali. Nyahkod dua kali untuk mendapatkan yang asal.

Alat berkaitan