Std::wstring stringtowstring (const std::string &STR)
{
Std::wstring wstr (Str.length (), L ');
Std::copy (Str.begin (), Str.end (), Wstr.begin ());
return WSTR;
}
Copy only low-byte to string
std::string wstringtostring (const std::wstring &WSTR)
{
std::string str (wstr.length (), ');
Std::copy (Wstr.begin (), Wstr.end (), Str.begin ());
return str;
}
The above for the English string is correct, for the Chinese is wrong, the following code is applicable to both Chinese and English!
STD::stringAventilationgraph::wstring2string (ConstStd::wstring &wstr) {std::stringCurlocale = setlocale (Lc_all, NULL);//Curlocale = "C";SetLocale (Lc_all,"CHS"); Constwchar_t* _source =Wstr.c_str (); size_t _dsize=2* Wstr.size () +1; Char*_dest =New Char[_dsize]; memset (_dest,0, _dsize); Wcstombs (_dest, _source, _dsize); STD::stringresult =_dest; Delete[]_dest; SetLocale (Lc_all, Curlocale.c_str ()); returnresult;}//wstring Turn StringStd::wstring aventilationgraph::string2wstring (ConstSTD::string&str) {setlocale (Lc_all,"CHS"); Const Char* _source =Str.c_str (); size_t _dsize= Str.size () +1; wchar_t*_dest =NewWchar_t[_dsize]; Wmemset (_dest,0, _dsize); Mbstowcs (_dest, _source, _dsize); std::wstring result=_dest; Delete[]_dest; SetLocale (Lc_all,"C"); returnresult;}
Conversion of string to Wstring