Penyahkod URL

5 daripada 2 penilaian

Penyahkod URL ialah alat percuma yang menukar teks URL berkod peratus kembali kepada bentuk rentetan asalnya.

Apakah fungsi penyahkodan URL?

Penyahkodan URL membalikkan proses pengekodan yang membolehkan ruang, tanda baca dan bait lain dihantar melalui URL serta sintaks tertentu yang menggunakan pengekodan peratus. Dalam pengekodan ini, satu bait diwakili oleh tanda peratus diikuti dua digit perenambelasan. Pengekodan URL gaya borang turut menggunakan + untuk mewakili ruang. Contohnya, ruang boleh ditulis sebagai %20 dan ampersan sebagai %26.

Berikut ialah contoh ringkas sebelum dan selepas dinyahkod:

Input berkod: red%20%26%20blue

Output dinyahkod: red & blue

Pengekodan ini diperlukan kerana sesetengah aksara mempunyai fungsi struktur dalam URL. Tanda soal menandakan permulaan pertanyaan URL, manakala dalam data pertanyaan gaya borang, ampersan literal biasanya memisahkan medan. Dengan mengekod aksara tersebut, aplikasi boleh menghantarnya sebagai data.

Pengekodan URL bukan penyulitan dan tidak memberi sebarang kerahsiaan. Sesiapa yang boleh membaca nilai berkod itu boleh menyahkodnya. Jangan anggap kata laluan, token akses atau maklumat peribadi yang dikodkan dengan peratus sebagai data yang dilindungi.

Bagaimanakah cara menggunakan Penyahkod URL?

Tampal atau masukkan teks berkod, proseskannya, kemudian lihat nilai yang dipulihkan dalam medan hasil URL dinyahkod. Alat ini menggunakan fungsi urldecode PHP, jadi ia menukar jujukan %HH yang sah dan menganggap tanda tambah sebagai ruang.

  1. Salin komponen berkod, seperti nilai parameter pertanyaan.
  2. Masukkan nilai berkod URL tanpa menambah tanda petik, kecuali tanda tersebut memang sebahagian daripada nilainya.
  3. Proses input URL dan semak hasil URL dinyahkod.
  4. Jika output masih mengandungi jujukan seperti %2F atau %20, periksa sama ada sumber itu telah dikodkan lebih daripada sekali sebelum menyahkodnya sekali lagi.

Pemprosesan dilakukan pada pelayan. Input anda dihantar ke pelayan melalui HTTPS dan tidak disimpan, tetapi data tersebut tetap meninggalkan peranti anda semasa diproses. Elakkan menampal maklumat rahsia ke dalam Penyahkod URL ini melainkan pemprosesan pada pelayan sesuai untuk data berkenaan.

Di manakah pengekodan URL digunakan?

Pengekodan URL paling kerap ditemui dalam rentetan pertanyaan, penyerahan borang dan nilai yang dibenamkan dalam pautan. Ia juga digunakan di beberapa tempat yang kurang ketara apabila data perlu dihantar melalui format teks yang terhad.

  • Rentetan pertanyaan: carian untuk "tea & cake" mungkin dipaparkan sebagai q=tea+%26+cake.
  • URI data: data teks boleh dikodkan dengan peratus selepas jenis media, walaupun Base64 juga merupakan perwakilan yang lazim digunakan.
  • Pautan e-mel: pautan mailto boleh mengekod ruang, pemisah baris dan tanda baca dalam parameter subjek atau kandungannya. Pengekodan pemindahan MIME yang digunakan dalam mesej e-mel ialah format yang berasingan.
  • Muatan JSON: JSON mempunyai peraturan pelepasan aksaranya sendiri, tetapi rentetan JSON mungkin mengandungi URL atau nilai pertanyaan yang telah dikodkan dan perlu dinyahkod secara berasingan.
  • Domain antarabangsa: label domain bukan ASCII biasanya menggunakan Punycode dan bukannya pengekodan peratus. Komponen laluan dan pertanyaan masih boleh mengandungi bait UTF-8 yang dikodkan dengan peratus.

Jika teks berkod ialah label domain yang bermula dengan xn--, gunakan Penukar IDN Punycode. Penyahkod URL digunakan untuk komponen URL berkod peratus, bukan untuk penukaran Punycode.

Contoh penyahkodan URL

Contoh berikut menunjukkan input yang lazim ditemui dan teks yang terhasil selepas penyahkodan URL.

  • hello%20world menjadi hello world.
  • name=Tom+Jones menjadi name=Tom Jones.
  • fish%26chips menjadi fish&chips.
  • %C2%A3 menjadi £ apabila bait tersebut mewakili teks UTF-8.
  • %E6%9D%B1%E4%BA%AC menjadi 東京 apabila ditafsirkan sebagai UTF-8.
  • 100%25 menjadi 100%.

Huruf biasa, nombor dan tanda baca yang tidak dikodkan secara umumnya kekal seperti yang dimasukkan. Input kosong menghasilkan medan URL dinyahkod yang kosong. Input yang sangat panjang menggunakan peraturan penyahkodan yang sama, walaupun pelayar, pelayan dan sistem penerima mungkin menetapkan had panjang permintaan atau URL masing-masing.

Aksara beraksen dan aksara bukan Latin biasanya dikodkan sebagai jujukan bait UTF-8, dengan setiap bait ditulis secara berasingan. Jika sistem asal menggunakan pengekodan aksara yang berbeza, bait yang dinyahkod mungkin dipaparkan sebagai simbol pengganti atau teks yang kelihatan tidak bermakna.

Mengapakah penyahkodan URL gagal atau menghasilkan teks yang tidak bermakna?

Penyahkodan URL boleh menghasilkan output yang tidak berubah atau tidak dijangka jika input mengandungi jujukan peratus yang tidak lengkap, telah dikodkan lebih daripada sekali, ditafsirkan menggunakan set aksara yang salah, atau sebenarnya bukan data berkod URL. Fungsi urldecode PHP membiarkan jujukan peratus yang rosak tanpa perubahan, manakala input berkod dua kali menghasilkan nilai perantaraan selepas satu pusingan. Periksa sumber asal sebelum menyahkodnya berulang kali.

  • Input berkod dua kali: %2520 dinyahkod sekali menjadi %20 dan hanya menjadi ruang selepas pusingan penyahkodan kedua. Nyahkod sekali lagi hanya jika anda tahu terdapat satu lagi lapisan pengekodan.
  • Jujukan peratus tidak lengkap: setiap bait berkod memerlukan dua digit perenambelasan. Tanda % di hujung atau nilai seperti %2 tidak lengkap dan tidak boleh mewakili bait berkod yang lengkap, jadi fungsi urldecode PHP membiarkannya tanpa perubahan.
  • Pengekodan aksara yang salah: penyahkodan peratus memulihkan bait. Contohnya, mentafsir bait ISO-8859-1 sebagai UTF-8 boleh menghasilkan teks yang tidak bermakna walaupun jujukan peratus itu sah.
  • Data perduaan dan bukannya teks: bait yang dinyahkod mungkin mewakili imej, fail termampat atau kandungan perduaan lain. Output seperti ini sememangnya tidak dijangka dapat dipaparkan sebagai teks yang boleh dibaca.
  • Jenis pengekodan yang salah: jika hasil penyahkodan URL kemudiannya dihantar kepada Penyahkod Base64, alat tersebut mungkin gagal kerana abjad standard berbanding abjad selamat URL, pelapik = yang tiada, atau input yang rosak. Pengekodan peratus URL tidak mempunyai pelapik dan tidak menggunakan abjad Base64. Penyahkodan URL juga tidak mengesahkan atau membaiki masalah Base64 tersebut.

Berhati-hati dengan tanda tambah literal. Dalam pengekodan URL gaya borang, + bermaksud ruang. Tanda tambah sebenar biasanya perlu dikodkan sebagai %2B sebelum dinyahkod.

Soalan lazim

Perlukah saya menyahkod seluruh URL atau satu bahagian sahaja?

Sebaik-baiknya, nyahkod segmen laluan atau nilai parameter pertanyaan secara berasingan. Menyahkod seluruh URL boleh menukar aksara simpanan berkod seperti %26, %3F atau %2F menjadi pemisah, lalu mengubah cara URL dihuraikan.

Bolehkah kod perenambelasan berhuruf kecil dinyahkod?

Ya. Huruf besar atau kecil tidak mempengaruhi digit perenambelasan dalam jujukan peratus, jadi %2f dan %2F mewakili bait yang sama. Jujukan dengan gabungan huruf besar dan kecil juga sah.

Adakah alat ini menyahkod nilai yang sama berulang kali?

Tidak. Setiap panggilan kepada urldecode hanya menjalankan satu pusingan penyahkodan. Jika %252F menjadi %2F, satu lagi pusingan diperlukan untuk menghasilkan garis miring. Namun, penyahkodan berulang boleh mengubah data yang sepatutnya mengandungi jujukan peratus literal.

Bolehkah penyahkodan URL memulihkan teks yang rosak?

Tidak. Ia boleh membalikkan pengekodan peratus yang sah, tetapi tidak dapat membina semula digit perenambelasan yang hilang atau menentukan set aksara asal dengan pasti. Semak sistem sumber, pengepala HTTP atau dokumentasi jika bait yang dinyahkod tidak dipaparkan dengan betul.

Apakah yang perlu saya lakukan jika nilai bermula dengan xn--?

Anggap nilai itu sebagai label domain Punycode, bukan teks berkod peratus biasa. Gunakan Penukar IDN Punycode, kemudian semak domain yang terhasil dengan teliti kerana aksara Unicode yang kelihatan serupa boleh berasal daripada sistem tulisan yang berbeza.

Alat serupa

Pengekod URL

Enkodkan sebarang input rentetan kepada format URL.

4,601
29

Alat popular