关于string与wstring之间的转换

原创 2016年08月30日 16:36:39

网上这种转换非常多,但基本遇见中文时没有不乱码的,今天做一个简单的总结

wstring转string


void funWstrToStr(wstring strw,string& str,UINT CODEPAGE)

{

int num = strw.length();
int len = WideCharToMultiByte(CODEPAGE, 0, (LPCWSTR)strw.c_str(), num, NULL, 0, NULL, NULL);
char* szStr = new char[len+1];
WideCharToMultiByte(CODEPAGE, 0, (LPCWSTR)strw.c_str(), num, szStr, len, NULL, NULL);
szStr[len] = '\0';

str = szStr;

}



string 转wstring


void funStrToWstr(string str,wstring& strw,UINT CODEPAGE)

{

char* pData= str.c_str();

DWORD dwNum = MultiByteToWideChar(CodePage, 0, pData, -1, NULL, 0);
if (dwNum == 0)
{
return;
}


WCHAR* pwText = new WCHAR[dwNum];
memset(pwText, '\0', dwNum);
MultiByteToWideChar(CodePage, 0, pData, -1, pwText, dwNum);
s
trw = pwText;

}


声明:这里的方法只适用于windows;linux下另有一套转换函数,有兴趣的可以查查

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c++中char*\wchar_t*\string\wstring之间的相互转换

string U2A(const wstring& str)//Unicode字符转Ascii字符{ string strDes; if ( str.empty() ) goto __end;...
  • mfcing
  • mfcing
  • 2012-05-02 23:16
  • 14535

C++ string 、char 、char *、wstring、wchar_t * 、wchar_t 之间的转换

原博文链接:http://www.aobosir.com/blog/2016/12/16/cpp-convert-string-wstring-char-wchar_t-pointer/char 与 ...

c++中的char*与wchar_t*与string以及wstring之间的相互转换

本文转自此网址:http://www.jb51.net/article/37627.htm   #ifndef USE_H_ #define USE_H_ #include...

wstring string CString之间的转换

wstring string CString之间的转换 //将wstring转换为string的函数 string ws2s(wstring& ws) { string curLoca...

string CString wstring 之间的转化

当使用unicode字符集进行编译的时候,string、wstring、CString三者是有显著区别的。以下讨论均指在unicode字符集下。 特点: string和wstring是C+...

VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*

原文地址:http://www.cnblogs.com/qq78292959/archive/2010/09/15/2077015.html #include #include using na...

string和wstring相互转换

转载:http://www.cnblogs.com/cwbcwb505/archive/2008/11/26/1341439.html 第一种方法:调用WideCharToMultiByte()...

知识记录:string、wstring、cstring、 char、 tchar、int、dword转换方法

最近编程一直头痛这集中类型的转化,明知都可以转却总是记不住,不断的上网查来查去,在这里小结一下。以备以后方便使用,当然有些方法可能不是最新的,或者最简单的,但是对于自己已经了解的使用起来应该方便的多:...

wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....转换

wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString.... #include // 使用C...
  • wletv
  • wletv
  • 2011-04-14 18:54
  • 1095
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)