c++ string转utf8
时间: 2023-06-21 09:10:22 浏览: 52
在 C++ 中,可以使用标准库中的 `wstring_convert` 类来实现字符串的编码转换。以下是将 `std::string` 转换为 UTF-8 编码的示例代码:
```cpp
#include <iostream>
#include <locale>
#include <codecvt>
int main() {
std::string str = "你好,世界!";
// 创建一个 UTF-8 编码转换器
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> utf8conv;
// 将 std::string 转换为 std::u32string
std::u32string u32str = utf8conv.from_bytes(str);
// 输出结果
for (char32_t c : u32str) {
std::cout << std::hex << c << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
4f60 597d ff0c 4e16 754c ff01
```
这里使用了 `std::codecvt_utf8<char32_t>` 类型的转换器将 `char32_t` 类型的 Unicode 字符串转换为 UTF-8 编码。然后使用 `std::wstring_convert` 类的 `from_bytes` 成员函数将 `std::string` 转换为 `std::u32string`,再逐个输出其中的字符。