c++ unicode转中文
时间: 2023-09-19 10:06:17 浏览: 25
在 C++ 中,可以使用以下方法将 Unicode 编码转换为中文字符串。
首先,你需要使用 `MultiByteToWideChar` 函数将 Unicode 编码转换为宽字符集(WCHAR)字符串。然后,使用 `WideCharToMultiByte` 函数将宽字符集字符串转换为多字节字符集(char)字符串。
下面是一个示例代码:
```c++
#include <iostream>
#include <Windows.h>
#include <string>
int main()
{
std::wstring unicodeString = L"\u4F60\u597D\uFF0C\u4E16\u754C\uFF01"; // Unicode 编码
int bufferSize = WideCharToMultiByte(CP_UTF8, 0, unicodeString.c_str(), -1, NULL, 0, NULL, NULL);
std::string utf8String(bufferSize, 0);
WideCharToMultiByte(CP_UTF8, 0, unicodeString.c_str(), -1, &utf8String[0], bufferSize, NULL, NULL);
std::cout << utf8String << std::endl; // 输出:你好,世界!
return 0;
}
```
在上面的示例中,我们使用了 `CP_UTF8` 参数来指定输出字符串的编码格式为 UTF-8。你可以将其替换为其他编码格式,例如 `CP_ACP`(默认 ANSI 编码)或 `CP936`(GB2312 编码)等。
同时,需要注意的是,`MultiByteToWideChar` 和 `WideCharToMultiByte` 函数的参数可能会因编码格式而有所不同,具体可以参考相关文档进行调整。