日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

033 Url中特殊字符的处理

發布時間:2023/12/13 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 033 Url中特殊字符的处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  在url跳轉頁面的時候,參數值中的#不見了,一直沒有處理,今天有空看了一下,后來發現后臺的過濾器之類的都沒有處理,就比較奇怪了,原來是特殊字符的問題。

一:Url中的特殊字符

1.說明

  這里還是需要做到一個眼熟的,遇到的時候可以快速定位到。

  具體現象就是?用URL傳參數的時候,用&符號連接,如果某一個參數中含"#$ ^ & * + ="這些符號的時候,在另一個頁面getParameter就會取不到傳過來的參數。

?

2.特殊字符

  

?

3.特殊字符的含義

  空格換成加號(+)
  正斜杠(/)分隔目錄和子目錄
  問號(?)分隔URL和查詢
  百分號(%)制定特殊字符
  #號指定書簽
  &號分隔參數

?

4.為啥要編碼

  通常如果一樣東西需要編碼,說明這樣東西并不適合傳輸。原因多種多樣,如Size過大,包含隱私數據,對于Url來說,之所以要進行編碼,是因為Url中有些字符會引起歧義。

  例如Url參數字符串中使用key=value鍵值對這樣的形式來傳參,鍵值對之間以&符號分隔,如/s?q=abc& ie=utf-8。如果你的value字符串中包含了=或者&,那么勢必會造成接收Url的服務器解析錯誤,因此必須將引起歧義的&和= 符號進行轉義,也就是對其進行編碼。

  又如,Url的編碼格式采用的是ASCII碼,而不是Unicode,這也就是說你不能在Url中包含任何非ASCII字符,例如中文。否則如果客戶端瀏覽器和服務端瀏覽器支持的字符集不同的情況下,中文可能會造成問題。

  Url編碼的原則就是使用安全的字符(沒有特殊用途或者特殊意義的可打印字符)去表示那些不安全的字符。

?

5.Url可以使用的字符

  RFC3986文檔規定,Url中只允許包含英文字母(a-zA-Z)、數字(0-9)、- _ . ~ 4個特殊字符以及所有保留字符。

?

6.保留字符

  

?

7.不安全字符

  還有一些字符,當他們直接放在Url中的時候,可能會引起解析程序的歧義。這些字符被視為不安全字符,原因有很多。

  

?

二:JS處理

1.escape,encodeURI和encodeURIComponent的區別

  Javascript中提供了3對函數用來對Url編碼以得到合法的Url,它們分別是escape / unescape,encodeURI / decodeURI和encodeURIComponent / decodeURIComponent。由于解碼和編碼的過程是可逆的,因此這里只解釋編碼的過程。

  這三個編碼的函數——escape,encodeURI,encodeURIComponent——都是用于將不安全不合法的Url字符轉換為合法的Url字符表示,它們有以下幾個不同點。

?

2.其安全字符

  就是不會編碼的字符

  

?

3.對Unicode的編碼不同

  這三個函數對于ASCII字符的編碼方式相同,均是使用百分號+兩位十六進制字符來表示。

  但是對于Unicode字符,escape的編碼方式是%uxxxx,其中的xxxx是用來表示unicode字符的4位十六進制字符。這種方式已經被W3C廢棄了。但是在ECMA-262標準中仍然保留著escape的這種編碼語法。

  encodeURI和encodeURIComponent則使用UTF-8對非ASCII字符進行編碼,然后再進行百分號編碼。這是RFC推薦的。因此建議盡可能的使用這兩個函數替代escape進行編碼。

?

4.小實驗

  

?

三:總結

  今天遇到的問題,查了一下,還是更適合使用encodeURIComponent()

  當決定使用哪個函數的時候,還需要查一下其安全字符。

?

轉載于:https://www.cnblogs.com/juncaoit/p/9708114.html

總結

以上是生活随笔為你收集整理的033 Url中特殊字符的处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。