日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

string、wstring、UTF-8、UTF-16、UTF-32之间转换

發(fā)布時(shí)間:2025/3/11 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 string、wstring、UTF-8、UTF-16、UTF-32之间转换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

//string轉(zhuǎn)wstring
std::wstring string_to_wstring(const std::string& str)
{
setlocale(LC_ALL, “”);
std::int64_t size = mbstowcs(NULL, str.c_str(), 0);
std::wstring w_str;
w_str.resize(size);
//算出代轉(zhuǎn)wstring字節(jié)
mbstowcs(w_str.data(), str.c_str(), str.size());
return w_str;
//std::wstring_convert<std::codecvt<wchar_t, char, std::mbstate_t>> conv(new std::codecvt<wchar_t, char, std::mbstate_t>(“CHS”));
// return conv.from_bytes(str);

}
//wstring to string
std::string wstring_to_string(const std::wstring& wstr)
{
setlocale(LC_ALL, “”);
//算出代轉(zhuǎn)string字節(jié)
std::int64_t size = wcstombs(NULL, wstr.c_str(), 0);
std::string desrt;
desrt.resize(size);
wcstombs(desrt.data(), wstr.c_str(), size);
return desrt;
//方法任意選
//setlocale(LC_ALL, “”);
//std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
// return conv.to_bytes(wstr);

//std::wstring_convert<std::codecvt<wchar_t, char, std::mbstate_t>> conv(new std::codecvt<wchar_t, char, std::mbstate_t>(“CHS”));

//return conv.to_bytes(str);
}

//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 wstring_to_utf8(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);
}

//utf16 to utf-8
std::string u16string_to_utf8(const std::u16string& str)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> strCnv;
return strCnv.to_bytes(str);
}

//utf-8 to utf-32
std::u32string utf8_utf32(std::string str)
{
std::wstring_convert< std::codecvt_utf8<char32_t>, char32_t >strCnv;
return strCnv.from_bytes(str);
}

//utf-32 to utf-8
std::string u32string_to_utf8(std::u32string str)
{
std::wstring_convert< std::codecvt_utf8<char32_t>, char32_t >strCnv;
return strCnv.to_bytes(str);
}

總結(jié)

以上是生活随笔為你收集整理的string、wstring、UTF-8、UTF-16、UTF-32之间转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。