关于escape编码怎么解码

关于escape编码如何解码

现在网页中获取的源码含有%26nbsp%3B 比如char s[]="%26nbsp%3B%u5BF9%u65B9%u7B54%u590D";

现在想将这些进行解码呢 这些字符百度url编码 解码出来是 对方答复
请大家帮忙看下

------解决方案--------------------
关于escape编码怎么解码
#include <stdio.h>
#include <string.h>
#include <locale.h>
char s[]="%26nbsp%3B%u5BF9%u65B9%u7B54%u590D";
char *p;
int i,j,r,n,v;
wchar_t w1[100];
wchar_t *pw;
void pdecode() {
    p=s;
    i=0;
    while (1) {
        r=sscanf(p,"%%%2X%n",&v,&n);
        if (r==EOF) break;
        if (r==1) {
            w1[i]=(wchar_t)v;
            p+=n;
            i++;
        } else {//r==0
            r=sscanf(p,"%%u%4X%n",&v,&n);
            if (r==EOF) break;
            if (r==1) {
                w1[i]=(wchar_t)v;
                p+=n;
                i++;
            } else {//r==0
                w1[i]=(wchar_t)p[0];
                p++;
                i++;
            }
        }
    }
}
void wstrrep(wchar_t *a,wchar_t b) {
    pw=w1;
    while (1) {
        pw=wcsstr(pw,a);
        if (pw) {
            memmove(pw+1,pw+wcslen(a),2*(wcslen(pw)-wcslen(a)+1));
            pw[0]=b;
        } else break;
    }
}
void htmldecode() {
    wstrrep(L"&nbsp;",L' ');
    wstrrep(L"&amp;",L'&');
    wstrrep(L"&quot;",L'\"');
    wstrrep(L"&lt;",L'<');
    wstrrep(L"&gt;",L'>');
}
int main() {
    _wsetlocale(LC_ALL,L"chs");
    pdecode();
    wprintf(L"[%s]\n",w1);
    htmldecode();
    wprintf(L"[%s]\n",w1);
    return 0;
}
//[&nbsp;对方答复]
//[ 对方答复]
//