如何将包含中文的字符串转换为std::wstring
时间: 2024-09-09 13:15:24 浏览: 63
在C++中,如果你有一个包含中文字符的UTF-8编码的字符串,并想将其转换为宽字符(std::wstring),你可以使用标准库中的`std::wstring_convert`和`codecvt_utf8<wchar_t>`。这里是一个简单的示例:
```cpp
#include <locale>
#include <codecvt>
#include <string>
std::wstring utf8_to_wide(const std::string& utf8_str) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.from_bytes(utf8_str);
}
// 使用示例
std::string chinese_str = "你好世界";
std::wstring wide_str = utf8_to_wide(chinese_str);
```
这个函数首先创建了一个`std::wstring_convert`对象,然后调用其`from_bytes`成员函数将UTF-8字符串转换成宽字符。记得在实际应用中设置合适的本地化环境,以支持中文字符。
阅读全文