關(guān)于URL中的特殊符號使用介紹
更新時間:2011年11月03日 15:49:46 作者:
因為經(jīng)常被Javascript中的rul的相關(guān)知識困擾,今天來總結(jié)一下URL的特殊字符
url即統(tǒng)一資源定位符,是通用資源標志符URI的一種。
由于有效的URI中不能包含某些字符,如空格等,如果不利用相應(yīng)編碼函數(shù)對URI進行編碼(瀏覽器會對相應(yīng)的URL進行處理),那么無法訪問到有效的資源。
javascript的Global對象(javascript的內(nèi)置對象)中有四個URI方法,分別是encodeURI和decodeURI,encodeURIComponent和decodeURIComponent,瀏覽器模型(BOM)提供了escape和unescape。在實際應(yīng)用中,URI方法更可取,因為URI方法會對所有的Unicode符號編碼,而BOM提供的escape和unescape只對ASCII符號進行編碼。此外escape,unescape可以用來對數(shù)據(jù)進行加密和解密處理。
其中encodeURI和decodeURI是作相反的處理,encodeURIComponent和decodeURIComponent是做相反的處理,escape和unescape做相反的處理。
encodeURI是處理完整的URI,而encodeURIComponent處理URI片段,encodeURI編碼除:!,#,¥,&,',(,),×,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z(共82個)以外的字符,而encodeURIComponent編碼除:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z(共71個)以外的字符,escape編碼除:*,+,-,.,/,@,_,0-9,a-z,A-Zs(共61個)以外的字符。
請求服務(wù)器(服務(wù)器是64位的操作系統(tǒng))端以含有特殊字符(+)的為名字的文件,用encodeURI,decodeURIComponent或者escape都會提示相應(yīng)的資源不存在,這是為什么呢?
js代碼:
url ="http://192.168.6.135/nas135/MyDocument/1+2.txt"
window.open(EncodeURI(url),"","","");
通過debug看到
EncodeURI(url)="http://192.168.6.135/nas135/MyDocument/1%2b2.txt",但是卻打不開服務(wù)器端1+2.txt的文件,不知道是不是因為64機器的原因?請各位大俠幫忙解釋一下?
由于有效的URI中不能包含某些字符,如空格等,如果不利用相應(yīng)編碼函數(shù)對URI進行編碼(瀏覽器會對相應(yīng)的URL進行處理),那么無法訪問到有效的資源。
javascript的Global對象(javascript的內(nèi)置對象)中有四個URI方法,分別是encodeURI和decodeURI,encodeURIComponent和decodeURIComponent,瀏覽器模型(BOM)提供了escape和unescape。在實際應(yīng)用中,URI方法更可取,因為URI方法會對所有的Unicode符號編碼,而BOM提供的escape和unescape只對ASCII符號進行編碼。此外escape,unescape可以用來對數(shù)據(jù)進行加密和解密處理。
其中encodeURI和decodeURI是作相反的處理,encodeURIComponent和decodeURIComponent是做相反的處理,escape和unescape做相反的處理。
encodeURI是處理完整的URI,而encodeURIComponent處理URI片段,encodeURI編碼除:!,#,¥,&,',(,),×,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z(共82個)以外的字符,而encodeURIComponent編碼除:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z(共71個)以外的字符,escape編碼除:*,+,-,.,/,@,_,0-9,a-z,A-Zs(共61個)以外的字符。
請求服務(wù)器(服務(wù)器是64位的操作系統(tǒng))端以含有特殊字符(+)的為名字的文件,用encodeURI,decodeURIComponent或者escape都會提示相應(yīng)的資源不存在,這是為什么呢?
js代碼:
復(fù)制代碼 代碼如下:
url ="http://192.168.6.135/nas135/MyDocument/1+2.txt"
window.open(EncodeURI(url),"","","");
通過debug看到
EncodeURI(url)="http://192.168.6.135/nas135/MyDocument/1%2b2.txt",但是卻打不開服務(wù)器端1+2.txt的文件,不知道是不是因為64機器的原因?請各位大俠幫忙解釋一下?
相關(guān)文章
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
大家在開發(fā)JavaScript應(yīng)用的時候,如果遇到這種大量節(jié)點的情況,不妨將DocumentFragment作為一個備選的方案。2010-06-06JS實現(xiàn)隱藏同級元素后只顯示JS文件內(nèi)容的方法
這篇文章主要介紹了JS實現(xiàn)隱藏同級元素后只顯示JS文件內(nèi)容的方法,可實現(xiàn)將與js文件的同級元素全部隱藏,只顯示js文件內(nèi)容的功能,涉及javascript針對頁面元素的遍歷與屬性修改相關(guān)技巧,需要的朋友可以參考下2016-09-09微信小程序?qū)崙?zhàn)之雙人五子棋游戲是實現(xiàn)
這篇文章主要為大家詳細介紹了如何利用微信小程序?qū)崿F(xiàn)雙人五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05IE6/7/8中Option元素未設(shè)value時Select將獲取空字符串
可以看到當(dāng)忘記寫option的value時這些現(xiàn)代瀏覽器都會盡量返回正確的(客戶端程序員想要的)結(jié)果value,其容錯性比IE6/7/8做的更好。2011-04-04event對象獲取方法總結(jié)在google瀏覽器下測試
Event 對象代表事件的狀態(tài),比如事件在其中發(fā)生的元素、鍵盤按鍵的狀態(tài)、鼠標的位置、鼠標按鈕的狀態(tài),Event對象的獲取方法如下,感興趣的朋友可以參考下2013-11-11