1.wchart_t转wstring
1 wchar_t tmpRuleStr[10] = {0};
2 wstring m_tmpRuleStr = wstring(tmpRuleStr);
2.wstring转wchar_t
1 wstring str = "123";
2 wchar_t* tmp = wstr.c_str();
3.string转wstring
1 std::wstring UTF8ToUnicode(const std::string& utf)
2 {
3 wchar_t *buff = new wchar_t[utf.length()+1];
4 int len = ::MultiByteToWideChar(CP_UTF8, 0, utf.c_str(), (int)utf.length(), buff, (int)utf.length()+1);
5 std::wstring str(buff, len);
6 delete [] buff;
7 return str;
8 }
9 std::wstring AnsiToUnicode(const std::string& str)
10 {
11 wchar_t *buff = new wchar_t[str.length()+1];
12 int len = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), buff, str.length()+1);
13 std::wstring text(buff, len);
14 delete [] buff;
15 return text;
16 }
4.wstring转string
1 std::string UnicodeToUTF8(const std::wstring& str)
2 {
3 char* buff;
4 int buffersize = ::WideCharToMultiByte(CP_UTF8, 0, str.c_str(), (int)str.length(), 0, 0, 0, 0);
5 buff = new char[buffersize+1];
6 int len = ::WideCharToMultiByte(CP_UTF8, 0, str.c_str(), (int)str.length(), buff, buffersize+1, 0, 0);
7 std::string utf(buff, len);
8 delete []buff;
9 return utf;
10 }
11
12 std::string UnicodeToAnsi(const std::wstring& str)
13 {
14 char *buff;
15 int buffersize = ::WideCharToMultiByte(CP_ACP, 0, str.c_str(), str.length(), 0, 0, NULL, NULL);
16 buff = new char[buffersize+1];
17 int len = ::WideCharToMultiByte(CP_ACP, 0, str.c_str(), str.length(), buff, buffersize + 1, NULL, NULL);
18 std::string text(buff, len);
19 delete [] buff;
20 return text;
21 }