c++ utf8转ansi
时间: 2023-08-30 07:05:31 浏览: 115
在 C++ 中,可以使用 Windows API 中的 WideCharToMultiByte 函数将 UTF-8 编码转换为 ANSI 编码。示例代码如下:
```cpp
#include <Windows.h>
#include <string>
// 将 UTF-8 编码的字符串转换为 ANSI 编码的字符串
std::string utf8_to_ansi(const std::string& str_utf8)
{
int len = MultiByteToWideChar(CP_UTF8, 0, str_utf8.c_str(), -1, nullptr, 0);
wchar_t* wstr = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, str_utf8.c_str(), -1, wstr, len);
len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, nullptr, 0, nullptr, nullptr);
char* str = new char[len];
WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, nullptr, nullptr);
std::string result(str);
delete[] wstr;
delete[] str;
return result;
}
```
这里使用的是 CP_ACP 表示 ANSI 编码,如果需要转换为其他编码,可以将其替换为对应的代码页即可。
阅读全文