in src/Windows/curl_easy.cpp [89:122]
std::wstring UnicodeStringFromUtf8String(_In_ const std::string& ansiString)
{
std::wstring unicodeString;
if (ansiString.empty())
{
return L"";
}
auto wideCharSize = MultiByteToWideChar(
CP_UTF8, MB_ERR_INVALID_CHARS, ansiString.c_str(), -1, nullptr, 0);
if (wideCharSize == 0)
{
throw curl_easy::error(
GetLastError(), "Unable to convert string to unicode (sizing)");
}
unicodeString.reserve(wideCharSize);
unicodeString.resize(wideCharSize - 1);
wideCharSize = MultiByteToWideChar(
CP_UTF8,
MB_ERR_INVALID_CHARS,
ansiString.c_str(),
-1,
&unicodeString[0],
wideCharSize);
if (wideCharSize == 0)
{
throw curl_easy::error(
GetLastError(), "Unable to convert string to unicode (conversion)");
}
return unicodeString;
}