应用程序从客户端的XMLHttpRequest接收看起来像(http://127.0.0.1:8000/?type%3DGCPrint%26get%3DPaperNames%3A%E9%BB%98%E8%AE%A4%E6%89%93%E5%8D%B0%E6%9C%BA
)的请求。 url由encodeURI()或encodeURIComponent()用javascript编码
如何才能正确获取规范表格网址?
我已到达sdk并跟随demo,但结果不正确,网址的最后一部分是中文字符。
这是我的测试代码
void UrlDecode()
{
wstring url = L"http://127.0.0.1:8000/?type%3DGCPrint%26get%3DPaperNames%3A%E9%BB%98%E8%AE%A4%E6%89%93%E5%8D%B0%E6%9C%BA";
DWORD bufSize = url.size()+1;
wstring buffer(url.size()+1, L'\0');
HRESULT hr = UrlCanonicalize(url.c_str(), &buffer[0], &bufSize, URL_UNESCAPE|URL_ESCAPE_UNSAFE);
if (SUCCEEDED(hr))
{
wcout.imbue(locale(""));
wcout<<buffer;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
UrlDecode();
//system("pause");
return 0;
}
结果是
答案 0 :(得分:0)
@RC Brand @enhzflep感谢你的帮助。
我尝试了UriParser,但也存在一些编码问题
最后我发现code snippnet,它对我有用
首先,使用CP_UTF8将url转换为MultiByte字符串(murl
)
然后,使用函数murl
解码urldecode
,获取已解码的网址durl
最后,使用CP_UTF8将durl
转换为WideChar。