[HTTP]_[C/C++]_[解析URL的转义字符百分比字符串]
2013-11-11 13:58
2026 查看
场景:
1.有时候获取一个超链接时,或者一个图片src时,里面的地址带有%XX,这样如果当成文件路径处理会不识别。所以要把转义字符解码。
2.它其实就是ASCII码的十六进制表示。
以下是stackoverflow提供的一个实现,很久以前找的,找不到原文了。添加了一些单元测试.
1.有时候获取一个超链接时,或者一个图片src时,里面的地址带有%XX,这样如果当成文件路径处理会不识别。所以要把转义字符解码。
2.它其实就是ASCII码的十六进制表示。
以下是stackoverflow提供的一个实现,很久以前找的,找不到原文了。添加了一些单元测试.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <string> #include <windows.h> #include <assert.h> std::string UrlDecode(std::string &SRC) { std::string ret; char ch; int ii; for (size_t i=0; i<SRC.length(); i++) { if (int(SRC[i])==37) { sscanf(SRC.substr(i+1,2).c_str(), "%x", &ii); ch=static_cast<char>(ii); ret+=ch; i=i+2; } else { ret+=SRC[i]; } } return (ret); } int main(int argc, char *argv[]) { printf("Hello, world\n"); std::string file_path = "C:\\Program%20File\\"; std::string str = UrlDecode(file_path); assert(!strcmp(str.c_str(),"C:\\Program File\\")); return 0; }
相关文章推荐
- [HTTP]_[C/C++]_[解析URL的转义字符百分比字符串]
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析
- 深入解析C++中的字符数组和处理字符串的方法
- 使用URLDecoder.decode解析字符串含有"+","+"号这个特殊字符会被吃掉,转换成空格
- 解析UTF8字符串,并截取每个字符到vector(C++代码)
- http的url中参数需要转义的字符
- [HTTP]_[C/C++]_[HTML特殊字符转义成正常字符]
- [HTTP]_[C/C++]_[HTML特殊字符转义成正常字符]
- C++中使用IXMLHTTPRequest对象调用Web API时,对URL中的特殊字符(或中文)编码
- jquery 删除字符串最后一个字符的方法解析
- C++实现将一个字符串中的字符替换成另一个字符串的方法
- C/C++中,为什么字符串可以赋值给字符指针变量,单引号和双引号的区别
- c/c++两列字符串解析到map中
- C++删除字符串中特定一个或多个字符
- 网址URL中特殊字符转义编码
- C++ 中常量字符串与字符数组
- c++字符串解析方法(将空格、tab、";"分离出来)
- 使用 URLDecoder 和 URLEncoder 对统一认证中的http地址转义字符进行处理
- [C++]_[获取Utf8字符串的字符个数和子字符串]
- HTML字符实体 转义字符串列表