std::string 转 std::wstring
时间: 2023-11-17 17:06:29 浏览: 124
wchar_t,char,string,wstring之间的相互转换
5星 · 资源好评率100%
要将std::string转换为std::wstring,可以使用以下代码:
```cpp
#include <locale>
#include <codecvt>
std::wstring s2ws(const std::string& str)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.from_bytes(str);
}
```
这里使用了std::wstring_convert和std::codecvt_utf8<wchar_t>来进行转换。首先,std::wstring_convert是一个通用的转换类模板,它可以将任何一种字符类型转换为另一种字符类型。其次,std::codecvt_utf8<wchar_t>是一个转换器,它可以将UTF-8编码的字符串转换为宽字符类型(wchar_t)的字符串。
在上面的代码中,我们首先创建了一个std::wstring_convert<std::codecvt_utf8<wchar_t>>类型的对象converter,然后调用它的from_bytes函数将std::string类型的字符串转换为std::wstring类型的字符串。
阅读全文