Я пытаюсь написать программу на C++, которая будет декодировать строку с кодировкой URL, содержащую URL-кодированные символы в Юникоде.UrlUnescape() и unicode chars
#include <windows.h>
#include <string>
#include <shlwapi.h>
#pragma comment(lib, "Shlwapi.lib")
int _tmain(int argc, _TCHAR* argv[])
{
std::wstring test = L"bla+%D0%B1%D0%BB%D0%BE%D1%84+%E6%97%A5%E6%9C%AC%E8%AA%9E";
PWSTR urlencodedStr = const_cast<WCHAR*>(test.c_str());
WCHAR decodedStr[1025];
DWORD size = 1024;
HRESULT hres = UrlUnescape(urlencodedStr, decodedStr, &size, NULL);
if (hres == S_OK)
MessageBox(NULL, decodedStr, L"decoded string", MB_OK);
return 0;
}
Я ожидаю, чтобы получить L "бла-блоф Расширенный" в decodedStr. Но вместо этого я получаю L "bla + Ð ± Ð" Ð¾Ñ "+ æ- ¥ 本語". Я использую кодировку unicode в моей сборке. Что я делаю неправильно?