20、宽字符串与字符串间的相互转换
1、宽字符串向字符串转换
static string ws2s(const wstring& ws)
 {
 std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";
 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);
 std::string result = _Dest;
 delete []_Dest;
 setlocale(LC_ALL, curLocale.c_str());
 return result;
 }
2、字符串向宽字符串转换
原理由上。
Mbstowcs
[1] 更多,可以参考MSDN。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号