`
Riddick
  • 浏览: 631540 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

阅读更多
#include<string>
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;
}

 

分享到:
评论

相关推荐

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

    代码如下: #ifndef USE_H_ #define USE_H_ #include  #include  #include &lt;string&gt; using namespace std; class CUser { public: CUser();... char* WcharToChar(const wchar_t* wp); char* StringToChar

    wchar_t,char,string,wstring之间的相互转换

    其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试通过。 代码如下:#include &lt;iostream&gt;#include &lt;string&gt;#include &lt;tchar&gt;#include using namespace std; //Converting a WChar ...

    层次路径递归创建文件实例

    const wchar_t* from,const wchar_t * to, bool bFailIfExists=true&#41;; bool vtCopyTree(const char* from,const char * to); bool vtCopyTree(const wchar_t* from,const wchar_t * to); bool vtFolderExists...

    wince开发用转换类

    static void Gb2312ToUnicode(wchar_t* pstrOut, u32 dwOutLen, const char* pstrIn, u32 dwInLen); static CString string_to_cstring(string text); static int string_to_int(string str); static string cstring...

    utf8 宽字节 mbcs 随意转换

    vtString WStringToUTF8(const wchar_t* wstring); vtString2 UTF8ToWString(const char *string_utf8); vtString WStringToMBCS(const wchar_t* wstring); vtString2 MBCSToWString(const char *string_mbcs); ...

    C++宽字符与普通字符的转换实例详解

    wstring string2Wstring(string sToMatch) { #ifdef _A_WIN int iWLen = MultiByteToWideChar( CP_ACP, 0, sToMatch.c_str(), sToMatch.size(), 0, 0 ); // 计算转换后宽字符串的长度。(不包含字符串结束符) ...

    定长字符串模板类

    针对char和wchar_t(我特讨厌这后面的_t这根尾巴)两种字符类型的基类的和默认traits 的typedef.写函数参数类型的时候可以少写几个字, ^=^ 4. template &lt;;size_t MaxSize, typename Traits=std::char_...

    matlab-stoi示例.docx

    int stoi (const wstring& str, size_t* idx = 0, int base = 10); Convert string to integer Parses str interpreting its content as an integral number of the specified base, which is returned as an int ...

    String与WString的字符转换代码

    String与WString的字符转换代码,包含4种字符相互转换。

    《C++String深入详解2.0版》PDF

    2.1.4 以char和wchar_t特化char_traits 56 附录3:Boost.Format中文文档 57 2.1 大纲 57 2.2 它是如何工作的 57 2.3语法 58 2.3.1 boost::format( format-string ) % arg1 % arg2 % ... % argN 58 2.3.2 printf 格式...

    《深入学习c++string》2.1版

    目录 1 正文 4 一、 C++的string的使用 4 1.1 C++ string简介 4 ...2.1.4 以char和wchar_t特化char_traits 24 附录3 TCHAR.h 映射表 24 日志: 24 1.0 版 24 1.1 版 24 1.2 版 24 2.0 版 24 2.1 版 24

    c_plus_plus_string_convet.rar_plus_wstring

    C++开发中经常遇到的中英文字符串表示(string,wstring)类型之间的转换。

    string、wstring、cstring、 char、 tchar、int、dword转换方法

    各种字符串类型的转换方法,留着备份以后使用

    wstring转string

    wstring转成string 关键 WideCharToMultiByte, 实现一个unicode字符串到一个多字节字符串。

    MFC数据类型转换

    支持int转string,double转string,string转wstring,const char*转为char*,wstring转string,utf8转gbk,gbk转utf8等

    使用GDI+的SDI单文档程序 浏览图片 内含步骤说明 适合完全不会的新手

    int A2U(const char* szA,wchar_t* szU,size_t cnt);// std::wstring A2U(const char* szA);// 并#include &lt;string&gt; 然后在GdiAppView.cpp里加入这两个函数的实现 10.在GdiAppView.cpp中的OnDraw函数中添加显示代码...

    C++类型转化

    本工程总结了:string2charx、string2charx、transchar、WChar2Ansi、wstring2string、wstring Utf_8ToUnicode、 GBKToUTF8几种类型的转化。

    utf-8、ANSI、Unicode相互转化c++实现

    std::wstring ConverANSI2Unicode(const std::string str); std::wstring ConverUTF82Unicode(const std::string str); std::string ConverUnicode2UTF8(const std::wstring str); std::string ConverUnicode2ANSI...

Global site tag (gtag.js) - Google Analytics