天天看點

20、寬字元串與字元串間的互相轉換

1、寬字元串向字元串轉換<?xml:namespace prefix = o />

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。