這篇文章將為大家詳細講解有關javascript對url進行編碼轉換的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司主要為客戶提供服務項目涵蓋了網頁視覺設計、VI標志設計、營銷型網站建設、網站程序開發(fā)、HTML5響應式成都網站建設、手機網站制作、微商城、網站托管及成都網站維護、WEB系統(tǒng)開發(fā)、域名注冊、國內外服務器租用、視頻、平面設計、SEO優(yōu)化排名。設計、前端、后端三個建站步驟的完善服務體系。一人跟蹤測試的建站服務標準。已經為玻璃隔斷行業(yè)客戶提供了網站建設服務。
javascript對url進行編碼轉換的方法:1、使用encodeURI()函數,可把字符串作為URI進行編碼;2、使用encodeURIComponent()函數,可把字符串作為URI組件進行編碼。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
項目中url遇到傳參數傳數組對象解析失敗問題,采用轉碼方式解決,但并不清楚實際原理,研究了一下JS轉碼解碼。
Javascript語言用于編碼的函數,一共有三個。
escape()
encodeURI()
encodeURIComponent()
三種編碼方式區(qū)別:
escape和 unescape:
escape:不能直接用于URL編碼,它的真正作用是返回一個字符的Unicode編碼值,因此可對指定的字符串進行編碼。
對除了ASCII字母、數字、標點符號"@ * _ + - . /"以外所有的空格符、標點符號、特殊字符以及其他非ASCII字符都會轉化成%xx(16進制數字)格式的字符編碼。即escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z。
對應的解碼函數是unescape();
encodeURI和 decodeURI:
**encodeURI()**是Javascript中真正用來對URL編碼的函數。對整個URL進行編碼,除了常見的符號以外,對網址中有特殊含義的符號"; / ? : @ & = + $ , #",也不進行編碼。編碼后,輸出符號的utf-8形式,并且在每個字節(jié)前加上%。需注意的是encodeURI()不對單引號編碼。
對應的解碼函數是decodeURI()。
encodeURIComponent和 decodeURIComponent
encodeURIComponent用于對URL的組成部分進行個別編碼,而不用于對整個URL進行編碼。因此,在encodeURI()中不被編碼的符號"; / ? : @ & = + $ , #",在encodeURIComponent()中統(tǒng)統(tǒng)會被編碼。
因為encodeURIComponent() 會將更多的字符進行編碼,比如"/"等字符。如果字符串里面包含了URI的幾個部分的話,不能用這個來進行編碼。否則“/”字符被編碼后將URL顯示錯誤。因此,用于參數的傳遞,參數包含特殊字符可能會造成間斷。
綜上所述:
**escape()**函數用于js對字符串進行編碼。不常用
**encodeURI()**用于整個url跳轉
**encodeURIComponent()**用于參數的傳遞,參數包含特殊字符可能會造成間斷。
關于“javascript對url進行編碼轉換的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
當前標題:javascript對url進行編碼轉換的方法
網頁URL:http://jinyejixie.com/article10/ghoigo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿網站建設、網站排名、手機網站建設、企業(yè)網站制作、網站設計公司、網站制作
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)