string 转utf-8编码字符串
时间: 2023-08-14 13:03:15 浏览: 190
在C++中,可以使用`std::wstring_convert`和`std::codecvt_utf8`来将`std::string`转换为UTF-8编码的字符串。下面是一个示例代码:
```c++
#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
int main() {
std::string str = "Hello, 世界!";
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string utf8_str = converter.to_bytes(std::wstring(str.begin(), str.end()));
std::cout << utf8_str << std::endl;
return 0;
}
```
在上面的代码中,我们首先定义了一个`std::string`类型的字符串`str`,其中包含了一些英文和中文字符。然后,我们使用`std::codecvt_utf8`来定义一个UTF-8编码转换器,并将其作为模板参数传递给`std::wstring_convert`。接下来,我们将`str`转换为`std::wstring`类型,并将其作为参数传递给`converter.to_bytes()`函数,以获取UTF-8编码的字符串。
最后,我们将得到的UTF-8编码字符串输出到控制台上。输出结果应该是:
```
Hello, 世界!
```
注意,如果你的编译环境不支持C++11及以上版本,你可能需要使用一些其他的方法来进行UTF-8编码字符串的转换。
阅读全文