std::string to utf-8 编码
时间: 2023-11-15 11:05:19 浏览: 39
将 std::string 转换为 UTF-8 编码可以使用以下代码:
```cpp
#include <locale>
#include <codecvt>
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string utf8_string = converter.to_bytes(wide_string);
```
其中,`wide_string` 是一个 `std::wstring` 类型的字符串,`utf8_string` 是转换后的 `std::string` 类型的字符串。
需要注意的是,此方法需要 C++11 支持。
相关问题
C++ std::string to utf-8
将C++的std::string转换为UTF-8编码可以使用以下代码:
```cpp
#include <locale>
#include <codecvt>
#include <string>
std::string to_utf8(const std::string& str) {
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
std::wstring wide_str = converter.from_bytes(str);
return std::string(wide_str.begin(), wide_str.end());
}
```
使用std::wstring_convert类可以方便地进行字符串编码转换。将std::string转换为std::wstring后,再用std::string构造函数将其转换为UTF-8编码的std::string。
std::string 已utf-8 编码
,如何转换成wstring?
您可以使用std::wstring_convert来完成这个转换。首先,您需要使用std::codecvt_utf8<wchar_t>指定转换的目标字符类型。接下来,您可以创建一个std::wstring_convert对象,并使用其to_bytes()函数将std::string转换为std::wstring。
以下是示例代码:
#include <locale>
#include <codecvt>
#include <string>
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string utf8_string = "你好";
std::wstring wide_string = converter.from_bytes(utf8_string);
// 宽字符串现在包含 "你好"。