Unicode下wstring(wchar_t*)和string(char*)互相转换
2011-05-03 23:53
633 查看
#include using namespace std; //将string转换成wstring wstring string2wstring(string str) { wstring result; //获取缓冲区大小,并申请空间,缓冲区大小按字符计算 int len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), NULL, 0); TCHAR* buffer = new TCHAR[len + 1]; //多字节编码转换成宽字节编码 MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), buffer, len); buffer[len] = '/0'; //添加字符串结尾 //删除缓冲区并返回值 result.append(buffer); delete[] buffer; return result; } //将wstring转换成string string wstring2string(wstring wstr) { string result; //获取缓冲区大小,并申请空间,缓冲区大小事按字节计算的 int len = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), NULL, 0, NULL, NULL); char* buffer = new char[len + 1]; //宽字节编码转换成多字节编码 WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), buffer, len, NULL, NULL); buffer[len] = '/0'; //删除缓冲区并返回值 result.append(buffer); delete[] buffer; return result; }
相关文章推荐
- Unicode下wstring(wchar_t*)和string(char*)互相转换
- Unicode下wstring(wchar_t*)和string(char*)互相转换
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换 [转]
- VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*
- string, CStringA, char*与wstring, CStringW, wchar_t*相互转换
- c++中的char*与wchar_t*与string以及wstring之间的相互转换
- VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*
- VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换
- PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换
- VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*
- wstring转换为string:wchar_t*转换为char*:
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- CString转char * ,string |wchar_t*和char*之间互相转换
- mbs字符串(char*)与Unicode字符串(wchar_t*)的转换.md
- wchar_t char string wstring 之间的转换
- C++ char,wchar_t, string, wstring之间的转换