我正在尝试使用以下代码将俄语字符转换为std字符串。但是函数utf8_encode正在回收垃圾。我使用了stackoverflow上引用的问题之一的utf8_encode
int _tmain(int argc, _TCHAR* argv[])
{
std::wstring ws(L"процессов");
std::string str = utf8_encode(ws);
return 0;
}
std::string utf8_encode(const std::wstring &wstr)
{
int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL);
std::string strTo( size_needed, 0 );
WideCharToMultiByte (CP_UTF8, 0, &wstr[0], (int)wstr.size(), &strTo[0], size_needed, NULL, NULL);
return strTo;
}