std::string转gkb 含中文
时间: 2023-11-22 22:05:26 浏览: 56
以下是将std::string转换为GBK编码的方法:
```cpp
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
int main() {
std::string str = "含有中文的字符串";
int len = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);
wchar_t* wstr = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, wstr, len);
len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);
char* gbk = new char[len];
WideCharToMultiByte(CP_ACP, 0, wstr, -1, gbk, len, NULL, NULL);
std::string result(gbk);
std::cout << result << std::endl;
delete[] wstr;
delete[] gbk;
return 0;
}
```
其中,MultiByteToWideChar函数将std::string转换为宽字符wchar_t*,WideCharToMultiByte函数将宽字符转换为GBK编码的char*,最后将char*转换为std::string输出。