utf8转std::string
时间: 2023-10-08 09:06:58 浏览: 171
可以使用以下代码将 UTF-8 编码的字符串转换为 `std::string` 类型:
```cpp
#include <iostream>
#include <string>
#include <codecvt>
std::string utf8_to_string(const std::string& utf8Str) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring utf16Str = converter.from_bytes(utf8Str);
std::string result(utf16Str.begin(), utf16Str.end());
return result;
}
int main() {
std::string utf8Str = "你好,界!";
std::string str = utf8_to_string(utf8Str);
std::cout << str << std::endl;
return 0;
}
```
这段代码使用了 `std::wstring_convert` 和 `std::codecvt_utf8` 来进行 UTF-8 到 UTF-16 的转换,然后将 UTF-16 转换为 `std::string` 类型。最后输出转换后的字符串。
请注意,此代码需要 C++11 或更高版本的支持。如果您使用的是较旧的编译器,可能需要根据情况进行适当的更改。另外,请确保编译器的编码设置正确,以避免出现乱码问题。
阅读全文