string转wstring
时间: 2023-07-10 21:42:37 浏览: 50
可以使用C++的标准库函数std::wstring_convert来实现string转wstring的功能,示例代码如下:
```c++
#include <string>
#include <codecvt>
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring wstr = converter.from_bytes(str);
```
其中,str是要转换的string字符串,wstr是转换后的wstring字符串。需要注意的是,使用std::wstring_convert需要包含头文件<string>和<codecvt>,并且需要指定编码方式,这里使用的是UTF-8编码。
相关问题
string转WString
在C++开发中,有时需要将string类型转换为wstring类型,可以使用以下方法:
1.使用Windows API函数MultiByteToWideChar()和WideCharToMultiByte()进行转换,但这种方法只适用于Windows系统。
2.使用C++11/C++14标准中的std::wstring_convert和std::codecvt_utf8<wchar_t>进行转换,这种方法可以实现跨平台string与wstring互相转换,但是在C++17标准中已经被弃用。
以下是使用std::wstring_convert和std::codecvt_utf8<wchar_t>进行转换的示例代码:
#include <string>
#include <locale>
#include <codecvt>
// convert string to wstring
std::wstring to_wide_string(const std::string& input) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.from_bytes(input);
}
// convert wstring to string
std::string to_byte_string(const std::wstring& input) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.to_bytes(input);
}
以上代码中,to_wide_string()函数将string类型的input参数转换为wstring类型并返回,to_byte_string()函数将wstring类型的input参数转换为string类型并返回。
string 转wstring
可以使用 C++ 标准库中的 std::wstring_convert 进行字符串编码转换。
下面是一个示例代码,将 std::string 转换为 std::wstring:
```cpp
#include <locale>
#include <codecvt>
#include <string>
std::wstring string_to_wstring(const std::string& str)
{
// 创建 UTF-8 到宽字符 UTF-16LE 的转换器
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
// 将 UTF-8 字符串转换为 UTF-16LE 编码的宽字符字符串
return converter.from_bytes(str);
}
```
使用方法:
```cpp
std::string str = "Hello, World!";
std::wstring wstr = string_to_wstring(str);
```
这里的 string_to_wstring 函数将输入的 std::string 转换为 std::wstring,并返回转换后的结果。需要注意的是,这里使用了 UTF-8 和 UTF-16LE 两种字符编码,如果需要使用其他编码进行转换,可以修改 std::codecvt 模板参数。