#include <string>
#include <locale>
#include <codecvt>
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, wchar_t* argv[])
{
std::string str("\x61\x61\x61\xf0\x9f\x98\xa8\xe4\xb8\xad\xe6\x96\x87");
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t> > cvt_utf8;
auto ws = cvt_utf8.from_bytes(str);
wcout << L"size of wchar_t == " << sizeof(wchar_t) << endl;
wcout << L"ws.len == " << ws.length() << endl;
//wcout << L"ws: " << ws << endl;
for (int i = 0; i < ws.length(); i++)
{
wcout << L"0x" << hex << (int)ws[i] << L" ";
}
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGxvY2FsZT4KI2luY2x1ZGUgPGNvZGVjdnQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oaW50IGFyZ2MsIHdjaGFyX3QqIGFyZ3ZbXSkKewoJc3RkOjpzdHJpbmcgc3RyKCJceDYxXHg2MVx4NjFceGYwXHg5Zlx4OThceGE4XHhlNFx4YjhceGFkXHhlNlx4OTZceDg3Iik7CgoJc3RkOjp3c3RyaW5nX2NvbnZlcnQ8c3RkOjpjb2RlY3Z0X3V0ZjhfdXRmMTY8d2NoYXJfdD4gPiBjdnRfdXRmODsKCWF1dG8gd3MgPSBjdnRfdXRmOC5mcm9tX2J5dGVzKHN0cik7CgoJd2NvdXQgPDwgTCJzaXplIG9mIHdjaGFyX3QgPT0gIiA8PCBzaXplb2Yod2NoYXJfdCkgPDwgZW5kbDsKCXdjb3V0IDw8IEwid3MubGVuID09ICIgPDwgd3MubGVuZ3RoKCkgPDwgZW5kbDsKCS8vd2NvdXQgPDwgTCJ3czogIiA8PCB3cyA8PCBlbmRsOwoKCWZvciAoaW50IGkgPSAwOyBpIDwgd3MubGVuZ3RoKCk7IGkrKykKCXsKCQl3Y291dCA8PCBMIjB4IiA8PCBoZXggPDwgKGludCl3c1tpXSA8PCBMIiAiOwoJfQoKCXJldHVybiAwOwp9