最近寫http伺服器,解析請求中的url,發現有一些特殊字元:
「+」 url 中+號表示空格 %2b這裡用%號表示轉義符,後面跟著16進製制數。「空格」 url中的空格可以用+號或者編碼 %20
「/」 分隔目錄和子目錄 %2f
「?」 分隔實際的 url 和引數 %3f
「%」 指定特殊字元 %25
「#」 表示書籤 %23
「&」 url 中指定的引數間的分隔符 %26
「=」 url 中指定引數的值 %3d
「\」 表示目錄路徑 %5c
「.」 句號 %2e
「:」 冒號 %3a
在編寫http伺服器的時候,離不開url的解析,當遇到%號的時候將後面的16進製制數轉為10進製(0-255對應ascii碼)後再轉為char型。
#include
#include
#include
using
namespace
std;
int main()
url中特殊符號的處理
url編碼與解碼 一般來說,url只能使用英文本母 阿拉伯數字和某些標點符號,不能使用其他文字和符號。url的編碼格式採用的是ascii碼,而不是unicode,這也就是說你不能在url中包含任何非ascii字元,例如希臘字母or中文。比如,世界上有英文本母的 但是沒有希臘字母的 讀作阿爾法 貝塔 ...
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...