url中的特殊符号

来源:互联网 发布:主角可以优化功法的 编辑:程序博客网 时间:2024/05/19 04:05

最近写HTTP服务器,解析请求中的url,发现有一些特殊字符:

“+” URL 中+号表示空格 %2B
“空格” URL中的空格可以用+号或者编码 %20
“/” 分隔目录和子目录 %2F
“?” 分隔实际的 URL 和参数 %3F
“%” 指定特殊字符 %25
“#” 表示书签 %23
“&” URL 中指定的参数间的分隔符 %26
“=” URL 中指定参数的值 %3D
“\” 表示目录路径 %5C
“.” 句号 %2E
“:” 冒号 %3A

这里用%号表示转义符,后面跟着16进制数。

在编写HTTP服务器的时候,离不开url的解析,当遇到%号的时候将后面的16进制数转为10进制(0-255对应ascii码)后再转为char型。

#include <iostream>#include <string>#include <sstream>using namespace std;int main(){    std::string s("3D");    stringstream ss(s);    int value;    ss>>std::hex>>value;    string out;    out+=static_cast<char>(value);    cout<<out<<endl;//输出“=”符号    return 0;}
1 0
原创粉丝点击