Bila Menggunakan escape vs. encodeURI dan encodeURIComponent
Apabila menyusun rentetan pertanyaan untuk penghantaran ke pelayan web, adalah penting untuk memahami perbezaan antara escape(), encodeURI(), dan encodeURIComponent().
Jangan Gunakan escape()
escape() ditamatkan dan tidak digalakkan untuk digunakan secara aktif. Niat ECMAScript untuk mengalih keluar ciri yang tidak disokong. Selain itu, ia mempamerkan gelagat yang tidak diingini seperti pengekodan aksara khas, termasuk yang tidak ditetapkan secara eksplisit dalam standard rentetan pertanyaan.
Gunakan encodeURI() untuk URL Penuh
Gunakan encodeURI () apabila beroperasi dengan URL lengkap. Ia dengan sewajarnya melarikan diri daripada aksara penting, memastikan URL berfungsi dengan betul. Sebagai contoh, apabila pengekodan "http://www.example.org/file dengan spaces.html", ia akan mengeluarkan "http://www.example.org/a fail dengan spaces.html".
Gunakan encodeURIComponent() untuk Parameter URL
Gunakan encodeURIComponent() untuk mengekod nilai parameter URL. Ia mengekodkan julat aksara yang lebih luas daripada encodeURI() tanpa menjejaskan struktur URL. Dengan mengekodkan nilai seperti "http://example.org/?a=12&b=55", seseorang memperoleh "http://example.org/?a=12&b=55", membenarkan parameter disepadukan ke dalam yang lebih besar URL.
Nota Awas
Kedua-dua encodeURI() dan encodeURIComponent() tidak melarikan diri daripada aksara petikan tunggal ('). Akibatnya, apabila membina atribut HTML, adalah penting untuk menggunakan " bukannya ', atau berpotensi memperkenalkan kelemahan keselamatan.
Atas ialah kandungan terperinci Escape lwn. encodeURI lwn. encodeURIComponent: Bila Menggunakan Mana untuk Pengekodan URL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!