Rumah > hujung hadapan web > tutorial js > Melarikan diri, encodeURI atau encodeURIKomponen: Bila Untuk Menggunakan Yang Mana untuk Pengekodan Rentetan Pertanyaan?

Melarikan diri, encodeURI atau encodeURIKomponen: Bila Untuk Menggunakan Yang Mana untuk Pengekodan Rentetan Pertanyaan?

Barbara Streisand
Lepaskan: 2024-12-11 02:12:09
asal
184 orang telah melayarinya

Escape, encodeURI, or encodeURIComponent: When to Use Which for Query String Encoding?

Bila Menggunakan Escape, encodeURI atau encodeURIComponent for Query String Encoding

Dalam konteks menghantar rentetan pertanyaan ke pelayan web, kaedah pengekodan yang sesuai bergantung pada keperluan pengekodan khusus.

escape()

Fungsi escape() tidak boleh digunakan, kerana ia telah ditamatkan dalam spesifikasi ECMAScript. Ia mengekod semua aksara khas kecuali @, _, *, , dan -.

encodeURI()

Gunakan encodeURI() apabila anda memerlukan URL berfungsi. Ia mengekod semua aksara kecuali yang dikhaskan untuk URL. Aksara simpanan ini termasuk /, &, ?, :, dan @.

encodeURIComponent()

Gunakan encodeURIComponent() apabila anda ingin mengekod nilai parameter URL. Ia mengekod semua aksara kecuali yang dinyatakan secara jelas sebagai tidak terpelihara. Aksara tidak terpelihara ini termasuk /, ?, :, dan @.

Contoh:

Untuk mengekod rentetan pertanyaan berikut:

http://www.example.org/a file with spaces.html
Salin selepas log masuk

Anda akan menggunakan encodeURI() untuk mendapatkan URL yang dikodkan berikut:

http://www.example.org/a%20file%20with%20spaces.html
Salin selepas log masuk

Walau bagaimanapun, jika anda ingin mengekod nilai parameter dalam rentetan pertanyaan, anda akan menggunakan encodeURIComponent():

var p1 = encodeURIComponent("http://example.org/?a=12&b=55")
Salin selepas log masuk

Nilai parameter yang dikodkan yang terhasil kemudiannya boleh dilampirkan pada URL asas untuk membentuk URL lengkap:

var url = "http://example.net/?param1=" + p1 + "&param2=99"
Salin selepas log masuk

Ini akan menghasilkan URL yang dikodkan lengkap berikut:

http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55&param2=99
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa encodeURIComponent() tidak mengekod aksara ', yang boleh membawa kepada kelemahan keselamatan jika tidak dikendalikan dengan betul semasa membina atribut HTML.

Atas ialah kandungan terperinci Melarikan diri, encodeURI atau encodeURIKomponen: Bila Untuk Menggunakan Yang Mana untuk Pengekodan Rentetan Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan