#include <locale>
#include <codecvt>
#pragma warning(disable:4996)
//u8string to wstring
std::wstring utf8_to_wstring(const std::string& str)
{
std::wstring_convert< std::codecvt_utf8_utf16<wchar_t> > strCnv;
return strCnv.from_bytes(str);
}
//wstring to string
//wstring to u8string
std::string utf8_to_wstring(const std::wstring& str)
{
std::wstring_convert< std::codecvt_utf8_utf16<wchar_t> > strCnv;
return strCnv.to_bytes(str);
}
//wstring to string
std::string wstring_to_string(const std::wstring& str)
{
std::wstring_convert< std::codecvt_utf8_utf16<wchar_t> > strCnv;
return strCnv.to_bytes(str);
}
// utf-8 to utf16
std::u16string utf8_to_u16string(const std::string &str)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>,char16_t> strCnv;
return strCnv.from_bytes(str);
}
std::u32string utf8_utf32(std::string str)
{
std::wstring_convert< std::codecvt_utf8<char32_t>, char32_t >strCnv;
return strCnv.from_bytes(str);
}
std::string u8string = wstring_to_string(L"我是好人");
std::u16string u16 = utf8_to_u16string(u8string);
std::u32string u32 = utf8_utf32(u8string);
来源:CSDN
作者:YinAiPing12
链接:https://blog.csdn.net/qq_21576535/article/details/103455963