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、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM