Rumah  >  Artikel  >  hujung hadapan web  >  Perbandingan beberapa kaedah pengekodan URL dalam kemahiran Javascript_javascript

Perbandingan beberapa kaedah pengekodan URL dalam kemahiran Javascript_javascript

WBOY
WBOYasal
2016-05-16 16:18:101524semak imbas

Terdapat beberapa kaedah untuk mengekod rentetan URL dalam JavaScript: escape(), encodeURI(), dan encodeURIComponent(). Pengekodan ini memainkan peranan yang berbeza.

kaedah melarikan diri():

Gunakan set aksara Latin ISO untuk mengekod rentetan yang ditentukan. Semua ruang, tanda baca, aksara khas dan aksara bukan ASCII lain akan ditukar kepada pengekodan aksara dalam format %xx (xx adalah sama dengan nombor perenambelasan pengekodan aksara dalam jadual set aksara). Contohnya, pengekodan yang sepadan dengan aksara ruang ialah .

Watak yang tidak akan dikodkan oleh kaedah ini: @ * /

kaedah encodeURI():

Tukar rentetan URI kepada rentetan format melarikan diri menggunakan format pengekodan UTF-8.

Watak yang tidak akan dikodkan dengan kaedah ini: !

encodeURIComponent() kaedah:

Tukar rentetan URI kepada rentetan format melarikan diri menggunakan format pengekodan UTF-8. Berbanding dengan encodeURI(), kaedah ini akan mengekod lebih banyak aksara, seperti / dan aksara lain. Jadi jika rentetan mengandungi beberapa bahagian URI, anda tidak boleh menggunakan kaedah ini untuk mengekod, jika tidak, URL akan memaparkan ralat selepas aksara / dikodkan.

Watak yang tidak akan dikodkan oleh kaedah ini: ! * ( ) '

Oleh itu, untuk rentetan Cina, jika anda tidak mahu menukar format pengekodan rentetan ke dalam format UTF-8 (contohnya, apabila set aksara halaman asal dan halaman sasaran adalah sama), anda hanya perlu menggunakan melarikan diri. Jika halaman anda ialah GB2312 atau pengekodan lain, dan halaman yang menerima parameter adalah dikodkan UTF-8, anda mesti menggunakan encodeURI atau encodeURIComponent.

Selain itu, encodeURI/encodeURIComponent telah diperkenalkan selepas javascript1.5, dan escape tersedia dalam javascript1.0.

Kenyataan:
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