1. 程式人生 > >C/C++.【轉】解析URL的轉義字元百分比(%)字串

C/C++.【轉】解析URL的轉義字元百分比(%)字串

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、