关闭

c++ string 转化为wstring

标签: stringwstring
726人阅读 评论(0) 收藏 举报
分类:

来自: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;
}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:62792次
    • 积分:861
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:20篇
    • 译文:1篇
    • 评论:2条
    文章分类
    最新评论