C/C++.【轉】解析URL的轉義字元百分比(%)字串
阿新 • • 發佈:2018-12-06
1、來自:[HTTP]_[C_C++]_[解析URL的轉義字元百分比字串] - 豬一戒 - 部落格園.html(http://www.cnblogs.com/zhuyijie/p/6465303.html)
2、使用環境:我在 使用 libxml2的時候,遇到 檔案編碼不對,它在報錯輸出檔名的時候 如果檔名中有中文 則使用的就是URL的轉義字串(帶%),肉眼看不出來是什麼文字,轉以後 才看得懂...
#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; }
3、
4、
5、