c++ string 转化为wstring

来源:互联网 发布:ubuntu libxml 编辑:程序博客网 时间:2024/06/16 22:06

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



原创粉丝点击