一般來說,url只能使用英文本母、阿拉伯數字和某些標點符號,不能使用其他文字和符號。url的編碼格式採用的是ascii碼,而不是unicode,這也就是說你不能在url中包含任何非ascii字元,例如希臘字母or中文。比如,世界上有英文本母的**,但是沒有希臘字母的**
(讀作阿爾法-貝塔-伽瑪.com)。這是因為網路標準rfc 1738做了硬性規定:
只有字母和數字[0-9a-za-z]、一些特殊符號」$-_.+!*』(),」[不包括雙引號]、以及某些保留字,才可以不經過編碼直接用於url。這意味著,如果url中有漢字,等特殊字元的時候,就必須編碼後使用。而+,空格,/,?,%,#,&,=,這些字元(不安全),當把他們直接放在url中的時候,可能會引起解析程式的歧義,因此也必須經過編碼才能使用。
將這些字元轉化成伺服器可以識別的字元,對應關係如下:
特殊字元
代表含義
替換內容
+url 中+號表示空格
%2b空格
url中的空格可以用+號或者編碼
%20/
分隔目錄和子目錄
%2f?
分隔實際的url和引數
%3f%
指定特殊字元
%25#
表示書籤
%23&
url 中指定的引數間的分隔符
%26url 中指定引數的值
%3d[ - ]
陣列[1,2,3]
%5b-%5d
參考文章:
URL特殊符號處理
有些特殊符號在url中試不能直接傳遞的,如果要在url中傳遞這些符號,就需要使用它們的編碼 否則,將會出現亂碼。十六進製制值 1 url 中 號表示空格 2b 2 空格 url中的空格可以用 號或者編碼 20 3 分隔目錄和子目錄 2f 4 分隔實際的 url 和引數 3f 5 指定特殊字元 25 ...
URL特殊符號的處理
有些符號在url中是不能直接傳遞的,如果要在url中傳遞這些特殊符號,那麼就要使用他們的編碼了。編碼的格式為 加字元的ascii碼,即乙個百分號 後面跟對應字元的ascii 16進製制 碼值。例如 空格的編碼值是 20 如果不使用轉義字元,這些編碼就會當url中定義的特殊字元處理。下表中列出了一些u...
url中的特殊符號
最近寫http伺服器,解析請求中的url,發現有一些特殊字元 url 中 號表示空格 2b 空格 url中的空格可以用 號或者編碼 20 分隔目錄和子目錄 2f 分隔實際的 url 和引數 3f 指定特殊字元 25 表示書籤 23 url 中指定的引數間的分隔符 26 url 中指定引數的值 3d ...