哪些字元需要編碼
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位址,但是執行的時候卻並非那麼理想,因為這其中...