Penukar Percuma

Pengekod URL / Penyahkod

Mengekod dan menyahkod URL dan komponen URI serta-merta dalam penyemak imbas anda. Percuma, peribadi dan tiada muat naik diperlukan.

Ataupun

Tentang alat ini

Pengekodan URL (secara rasmi pengekodan peratus, ditakrifkan dalam RFC 3986) menterjemah aksara yang mempunyai makna istimewa dalam URL — ruang, garis miring, ampersan, tanda cincang — ke dalam bentuk selamat menggunakan tanda peratus diikuti dengan digit heks. Aksara ruang menjadi %20 (atau + dalam konteks berkod bentuk), ampersand menjadi %26 dan seterusnya. Tanpa pengekodan ini, aksara khas akan ditafsirkan sebagai sintaks URL dan bukannya sebagai data literal, memecahkan URL atau menyebabkan kelakuan yang tidak diingini.

Dua pengekodan berkaitan tetapi berbeza wujud. Pengekodan komponen URL standard menggunakan %-escapes untuk semua perkara di luar set aksara tidak terpelihara: A-Z, a-z, 0-9, sempang, garis bawah, noktah, tilde. Varian yang dikodkan borang (application/x-www-form-urlencoded) juga menganggap ruang sebagai tanda tambah dan menggunakan peraturan yang berbeza untuk beberapa aksara lain. EncodeURIComponent JavaScript menggunakan pengekodan komponen yang ketat; encodeURI menggunakan bentuk yang lebih permisif yang mengekalkan aksara struktur URL.

Alat ini menawarkan pengekodan dan penyahkodan. Mod pengekodan membalut setiap aksara yang memerlukan pelarian dalam format %HH; mod nyahkod membalikkan transformasi. Kedua-duanya dijalankan sepenuhnya dalam penyemak imbas anda menggunakan fungsi URL JavaScript terbina dalam, jadi tiada data dihantar ke mana-mana.

Mengapa Mengekod atau Menyahkod URL

Sebarang masa data dimasukkan dalam URL — parameter rentetan pertanyaan, segmen laluan yang mengandungi input pengguna, sasaran ubah hala — pengekodan yang betul diperlukan. Gagal mengekod menghasilkan URL yang terputus apabila aksara khas muncul, membocorkan sempadan parameter kepada rentetan pertanyaan (menukar &x=1 menjadi parameter yang berasingan) atau disekat oleh pelayan web sebagai permintaan yang salah bentuk.

Penyahkodan ialah songsang: mengekstrak data asal daripada URL yang dikodkan. Bar alamat penyemak imbas sering menunjukkan URL dalam bentuk yang dikodkan; penyahkodan mendedahkan apa yang sebenarnya dimaksudkan. Pengelogan, penyahpepijatan dan analisis keselamatan semuanya mendapat manfaat daripada URL yang dinyahkod yang menunjukkan parameter dan laluan asal.

Cara menggunakan

Tampal rentetan, pilih arah.

  1. Pilih pengekodan atau nyahkod: Pengekodan membungkus aksara tidak selamat dalam format %HH. Nyahkod membalikkan %HH melarikan diri kembali kepada aksara literal.
  2. Tambah teks input: Tampal rentetan untuk mengekod atau menyahkod. Untuk pengekodan, ini biasanya nilai literal dengan ruang, aksara khas atau kandungan bukan ASCII. Untuk penyahkodan, ini ialah URL atau komponen URL yang mengandungi %HH escape.
  3. Tukar: Alat ini menggunakan encodeURIComponent atau decodeURIComponent. Output yang dikodkan selamat untuk dibenamkan dalam URL; output yang dinyahkod ialah nilai literal asal.
  4. Salin atau muat turun: Gunakan hasilnya di mana sahaja anda memerlukannya. Nilai yang dikodkan sesuai dengan URL; nilai yang dinyahkod mendedahkan data asal.

Kes Penggunaan Biasa

Butiran Teknikal

encodeURIComponent mengekod setiap aksara di luar set tidak terpelihara [A-Za-z0-9-_.~]. Ruang menjadi %20, tanda tambah menjadi %2B, tanda sama menjadi %3D dan seterusnya. Aksara di luar ASCII mula-mula dikodkan dalam UTF-8 dan kemudian setiap bait adalah %-escaped.

encodeURI adalah lebih permisif dan bertujuan untuk URL penuh dan bukannya komponen. Ia tidak terlepas /, ?, &, =, #, dan beberapa yang lain kerana aksara tersebut mempunyai maksud sintaks URL. Untuk membenamkan data pengguna dalam URL, encodeURIComponent hampir selalu merupakan pilihan yang tepat.

decodeURIComponent membalikkan %-escapes, mengesahkan bahawa setiap escape terbentuk dengan baik dan bait yang terhasil membentuk UTF-8 yang sah. Input yang cacat menimbulkan ralat dan bukannya menghasilkan sampah.

Amalan Terbaik

Soalan lazim

Apakah aksara yang memerlukan pengekodan URL?
Aksara terpelihara (&, =, ?, #, /, :, @) dan aksara tidak selamat (ruang, <, >, {, }, |, ^, ~, [, ], `) mesti dikodkan. Aksara abjad angka dan -_.~ selamat dan tidak memerlukan pengekodan.
Apakah perbezaan antara encodeURI dan encodeURIComponent?
encodeURI mengekod URL penuh tetapi mengekalkan aksara terpelihara (://?#). encodeURIComponent mengekod semua kecuali -_.!~*'() — gunakannya untuk nilai parameter pertanyaan. Alat ini menawarkan kedua-dua mod.
Bagaimanakah ruang dikodkan dalam URL?
Ruang boleh dikodkan sebagai %20 (pengekodan peratus standard) atau + (pengekodan borang). %20 adalah betul untuk laluan URL, manakala + digunakan dalam rentetan pertanyaan daripada borang HTML. Alat ini menggunakan %20 secara lalai.
Bolehkah saya mengekod aksara Unicode?
ya. Aksara Unicode mula-mula dikodkan kepada UTF-8 bait, kemudian setiap bait dikodkan peratus. Contohnya, '日' menjadi %E6%97%A5 (tiga UTF-8 bait, setiap peratus dikodkan).
Sekiranya saya menggunakan encodeURI atau encodeURIComponent?
Hampir selalu encodeURIComponent. Gunakan encodeURI hanya jika anda mempunyai URL yang lengkap dan ingin mengekalkan strukturnya — biasanya jarang berlaku kerana anda membina URL daripada komponen juga.
Adakah data saya dimuat naik ke pelayan?
Tidak. Pengekodan dan penyahkodan URL berlaku sepenuhnya dalam penyemak imbas anda.
Adakah ia mengendalikan emoji Unicode?
ya. Emoji ialah jujukan UTF-8 berbilang bait; pengekod menghasilkan rantaian %-escaped byte yang dekoder dipasang semula dengan betul kembali kepada emoji asal.
Bagaimana jika input saya mempunyai rentetan yang kelihatan %HH yang sebenarnya tidak dikodkan?
Pengekodan menukar setiap % kepada %25, kemudian digunakan semula untuk melarikan diri untuk yang lain. Menyahkod input yang ketat membuang ralat pada escape yang cacat; rentetan yang kelihatan samar-samar mungkin tersalah dekod.