20、宽字符串与字符串间的相互转换

1、宽字符串向字符串转换

static string ws2s(const wstring& ws)

{

std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";

setlocale(LC_ALL, "chs");

const wchar_t* _Source = ws.c_str();

size_t _Dsize = 2 * ws.size() + 1;

char *_Dest = new char[_Dsize];

memset(_Dest, 0, _Dsize);

wcstombs(_Dest, _Source, _Dsize);

std::string result = _Dest;

delete []_Dest;

setlocale(LC_ALL, curLocale.c_str());

return result;

}

2、字符串向宽字符串转换

原理由上。

Mbstowcs

[1] 更多,可以参考MSDN

原文地址:https://www.cnblogs.com/mydomain/p/1914275.html