c++ string 轉化爲wstring

來自:http://www.cppblog.com/kenwell/archive/2008/05/21/50661.html

string 轉 wstring

std::wstring s2ws(const std::string &s)
{
	std::string curLocale = setlocale(LC_ALL,"");
	const char * _Source = s.c_str();
	size_t _Dsize = mbstowcs(NULL,_Source,0) + 1;
	wchar_t *_Dest = new wchar_t[_Dsize];
	wmemset(_Dest,0,_Dsize);
	mbstowcs(_Dest,_Source,_Dsize);
	std::wstring result = _Dest;
	delete []_Dest;
	setlocale(LC_ALL,curLocale.c_str());
	return result;
}

wstring 轉 string

std::string ws2s(const std::wstring &ws)
{
	string curLocale = setlocale(LC_ALL,NULL);
	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);
	string str;
	str = _Dest;
	delete []_Dest;
	setlocale(LC_ALL,curLocale.c_str());
	return str;
}



發佈了25 篇原創文章 · 獲贊 4 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章