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;
}



阅读更多
上一篇字符编码笔记:ASCII,Unicode和UTF-8
下一篇把一个excel中的sheet拷贝到另外一个excel中
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭