Escape vs. encodeURI / encodeURIKomponen: Pertimbangan Penggunaan
Apabila mengekod rentetan pertanyaan untuk dihantar ke pelayan web, pilihan antara menggunakan escape() dan encodeURI() / encodeURIComponent() bergantung pada keperluan khusus bagi aplikasi.
escape()
escape() ialah fungsi warisan yang tidak lagi disyorkan untuk digunakan. Ia telah ditamatkan dan memihak kepada encodeURI() dan encodeURIComponent() kerana ciri-cirinya yang tidak diingini. Khususnya, escape() mengekod aksara khas dengan pengecualian @*_ -./, dan ia menggunakan jujukan pelarian heksadesimal dua digit untuk aksara dengan nilai unit kod 0xFF atau kurang. Format ini tidak dibenarkan dalam rentetan pertanyaan, seperti yang ditakrifkan dalam RFC3986.
encodeURI()
encodeURI() hendaklah digunakan apabila URL yang berfungsi diingini. Ia mengekod aksara yang bukan sebahagian daripada spesifikasi URI, seperti ruang dan aksara bukan abjad angka. Walau bagaimanapun, encodeURI() tidak mengekodkan aksara '.
encodeURIComponent()
encodeURIComponent() hendaklah digunakan apabila mengekod nilai parameter URL. Ia mengekod aksara yang tidak sah dalam komponen URI, seperti ruang dan aksara bukan abjad angka. Selain itu, encodeURIComponent() tidak mengekod aksara '.
Garis Panduan Penggunaan
Atas ialah kandungan terperinci encodeURI() lwn. encodeURIComponent(): Bila Menggunakan Yang Mana untuk Pengekodan URL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!