c++ string 转wstring
时间: 2023-11-21 14:04:58 浏览: 74
wstring转string
5星 · 资源好评率100%
在C++中,string和wstring都是表示字符串的数据类型,其中string是使用单字节字符编码(如ASCII)表示的字符串,而wstring则是使用双字节字符编码(如UTF-16)表示的字符串。如果需要将一个string类型的字符串转换为wstring类型的字符串,可以使用以下代码:
```
#include <string>
#include <locale>
#include <codecvt>
// convert string to wstring
inline std::wstring to_wide_string(const std::string& input) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
return converter.from_bytes(input);
}
```
这里使用了std::wstring_convert和std::codecvt_utf8<wchar_t>来进行转换。其中,std::wstring_convert是一个通用的字符串转换类,可以将不同编码的字符串相互转换。而std::codecvt_utf8<wchar_t>则是一个用于UTF-8和宽字符编码之间转换的转换器。
如果需要将一个wstring类型的字符串转换为string类型的字符串,可以使用以下代码:
```
// convert wstring to string
inline std::string to_byte_string(const std::wstring& input) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; return converter.to_bytes(input);
}
```
这里也是使用了std::wstring_convert和std::codecvt_utf8<wchar_t>来进行转换。
阅读全文