Unicode下wstring(wchar_t*)和string(char*)互相转换

转载 2011年01月20日 15:46:00

1.#include

2.using namespace std;

3.

4.//将string转换成wstring

5.wstring string2wstring(string str)

6.{

7. wstring result;

8. //获取缓冲区大小,并申请空间,缓冲区大小按字符计算

9. int len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), NULL, 0);

10. TCHAR* buffer = new TCHAR[len + 1];

11. //多字节编码转换成宽字节编码

12. MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), buffer, len);

13. buffer[len] = '/0'; //添加字符串结尾

14. //删除缓冲区并返回值

15. result.append(buffer);

16. delete[] buffer;

17. return result;

18.}

19.

20.//将wstring转换成string

21.string wstring2string(wstring wstr)

22.{ 23. string result;

 24. //获取缓冲区大小,并申请空间,缓冲区大小事按字节计算的

25. int len = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), NULL, 0, NULL, NULL);

26. char* buffer = new char[len + 1];

27. //宽字节编码转换成多字节编码

28. WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), buffer, len, NULL, NULL);

29. buffer[len] = '/0';

30. //删除缓冲区并返回值

31. result.append(buffer);

32. delete[] buffer;

33. return result;

34.}

string 和 wstring 互相转换的方法(即 Ansi & Unicode 在标准库下的互转)

注意一点:在控制台工程中不能使用MFC的东西。若要使用,就要把 的库设置成共享dll库;                 在控制台中一般不这么用,如果要用,还要加入头文件。但有时候...
  • xiaominggunchuqu
  • xiaominggunchuqu
  • 2017年01月22日 17:08
  • 698

wchar_t char string wstring 之间的转换

在处理中文时有时需要进行wchar_t,char,string,wstring之间的转换。 其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试...
  • lbd2008
  • lbd2008
  • 2012年12月19日 21:54
  • 12776

Unicode下wstring(wchar_t*)和string(char*)互相转换

#include using namespace std; //将string转换成wstring wstring string2wstring(st...
  • educast
  • educast
  • 2013年09月18日 08:28
  • 1653

关于char, wchar_t, string, wstring, unicode编码问题

转自:http://stackoverflow.com/questions/402283/stdwstring-vs-stdstring string? wstring? std::s...
  • lizhiqiang5846
  • lizhiqiang5846
  • 2016年11月21日 20:44
  • 304

Unicode编码下CString、char*、BSTR相互转换,char*、wchar_t*相互转换

更多精彩内容,请见:http://www.16boke.com 1、Unicode编码下CString转为char* 方法一:使用API:WideCharToMultiByte进行转换 #inclu...
  • one_in_one
  • one_in_one
  • 2014年05月20日 10:30
  • 5775

Unicode编码的项目中CString、char* 、wstring、string的相互转换

1、CString转char* 可以使用以下函数: static char* StringToChar(CString str){ //获取字符串大小 int len = WideCharTo...
  • cyloser
  • cyloser
  • 2016年03月12日 20:27
  • 866

关于char wchar_t 和 unicode utf8等混淆概念

以下内容转载: 对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。 ****************************** 首先,内存中的数据是单纯的二进制数据,当然你要用十六进...
  • cwj649956781
  • cwj649956781
  • 2013年11月11日 14:46
  • 1216

wchar_t 转换 string & std::string 转换 wchar_t

测试环境: vs2008 开发语言:C++ #include #include #include // wchar_t to string void Wchar_tToS...
  • w18767104183
  • w18767104183
  • 2014年07月09日 11:58
  • 3541

C++ wstring string char* wchar_t相互转换

1. char*->string (1)直接转换 const char* nodename; string temp = nodename;string temp2(nodename); ...
  • u012543266
  • u012543266
  • 2013年12月19日 00:29
  • 8725

string和wstring相互转换方法,标准C++做成,可以在Linux、Windows下运行

string和wstring相互转换方法,这个是对以前的修改,主要修改了输入为空,导致的小bug。/* string 转换为 wstring */ std::wstring c2w(const c...
  • Harry_lyc
  • Harry_lyc
  • 2011年07月22日 10:10
  • 9677
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unicode下wstring(wchar_t*)和string(char*)互相转换
举报原因:
原因补充:

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