http url特殊字元轉義

2021-09-25 21:35:45 字數 1532 閱讀 4122

哪些字元需要編碼

1、url特殊字元轉義,url中一些字元的特殊含義,基本編碼規則如下:

1、空格換成加號(+)

2、正斜槓(/)分隔目錄和子目錄

3、問號(?)分隔url和查詢

4、百分號(%)制定特殊字元

5、#號指定書籤

6、&號分隔引數

2、不需要編碼的字元:

rfc3986文件對url的編譯碼問題做出了詳細的建議,指出了哪些字元需要被編碼才不會引起url語義的轉變,以及對為什麼這些字元需要編碼做出了相應的解釋。

1、在us-ascii字符集中沒有的可列印字元:url中只允許使用可列印字元。us-ascii碼中的10-7f位元組全都表示控制字元,這些字元都不能直接出現在url中。同時,對於80-ff位元組(iso-8859-1),由於已經超出了us-acii定義的位元組範圍,因此也不可以放在url中。

2、保留字元:url可以劃分成若干個元件,協議、主機、路徑等。有一些字元(:/?#@)是用作分隔不同元件的。例如:冒號用於分隔協議和主機,/用於分隔主機和路徑,?用於分隔路徑和查詢引數,等等。還有一些字元(!$&'()*+,;=)用於在每個元件中起到分隔作用的,如=用於表示查詢引數中的鍵值對,&符號用於分隔查詢多個鍵值對。當元件中的普通資料報含這些特殊字元時,需要對其進行編碼。

rfc3986文件規定,url中只允許包含以下四種:

1、英文本母(a-za-z)

2、數字(0-9)

3、-_.~ 4個特殊字元

4、所有保留字元,rfc3986中指定了以下字元為保留字元(英文本元):     ! * ' ( ) ; : @ & = + $ , / ? # [ ]

在使用get方式提交表單資料時,如果不對引數中的特殊字元做處理就會產生解析錯誤的問題。特殊字元的轉義是通過將字元轉換為對應的ascii碼的十六進製制數字表示,然後再前面加上「%」,具體如下表。

字元url編碼

(空格)%20

"%22

#%23

%%25

&%26

(%28

)%29

+%2b

,%2c

/%2f

:%3a

;%3b

<%3c

=%3d

>%3e

?%3f

@%40

\%5c

|%7c

php中的特殊字元轉義 php特殊字元轉義詳解

html array html username htmlentities clean username ent quotes,utf 8 echo welcome back,複製 小提示htmlspecialchars 函式與htmlentities 函式基本相同,它們的引數定義完全相同,只不過是...

轉義字元與特殊字元

1 常見的轉義字元 c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都表示的不是它本來的ascii字元意思。轉義字元 意義ascii碼值 十進位制 a響鈴 bel b退格 bs 將當前位置移到前一列 f換頁 ff 將當前位置移到下頁...

oracle 特殊字元轉義

環境 oracle 9i plsql 在plsql裡邊執行 update userinfo set pageurl myjsp?page 1 pagesize 10 where id test 這條sql語句往資料庫的pageurl欄位放進去了乙個url位址,但是執行的時候卻並非那麼理想,因為這其中...