需要用到 wstring_convert
类:
template <class Codecvt, class Elem = wchar_t>
class wstring_convert
- Codecvt
表示转换对象的区域设置方面 - Elem
宽字符元素类型
typedef basic_string<char> string;
typedef basic_string<char16_t> u16string;
#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
int main()
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
const char *str = "Test u16string";
std::u16string u16str = converter.from_bytes(str);
std::string str2 = converter.to_bytes(u16str);
std::cout << str2 << std::endl;
return 0;
}