關於URL中的特殊符號使用介紹

來源:互聯網
上載者:User

url即統一資源定位器,是通用資源標誌符URI的一種。

由於有效URI中不能包含某些字元,如空格等,如果不利用相應編碼函數對URI進行編碼(瀏覽器會對相應的URL進行處理),那麼無法訪問到有效資源。

javascript的Global對象(javascript的內建對象)中有四個URI方法,分別是encodeURI和decodeURI,encodeURIComponent和decodeURIComponent,瀏覽器模型(BOM)提供了escape和unescape。在實際應用中,URI方法更可取,因為URI方法會對所有的Unicode符號編碼,而BOM提供的escape和unescape只對ASCII符號進行編碼。此外escape,unescape可以用來對資料進行加密和解密處理。

其中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個)以外的字元。

請求伺服器(伺服器是64位的作業系統)端以含有特殊字元(+)的為名字的檔案,用encodeURI,decodeURIComponent或者escape都會提示相應的資源不存在,這是為什麼呢?

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",但是卻打不開伺服器端1+2.txt的檔案,不知道是不是因為64機器的原因?請各位大俠幫忙解釋一下?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.