#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
#include <iomanip>
int main() {
// широкие символы
std::wstring wstr = L"Я строка в UCS-2. がダウンロードできません";
// широкие символы в UTF-8
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
std::cout << "Chr | UTF-8\n============\n";
for(const auto &c:wstr) {
std::string u8str = conv.to_bytes(c);
std::cout << u8str << " : ";
for(const uint8_t &i:u8str)
std::cout << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>(i) << ' ';
std::cout << std::dec << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bG9jYWxlPgojaW5jbHVkZSA8Y29kZWN2dD4KI2luY2x1ZGUgPGlvbWFuaXA+CiAKaW50IG1haW4oKSB7CiAgICAvLyDRiNC40YDQvtC60LjQtSDRgdC40LzQstC+0LvRiwogICAgc3RkOjp3c3RyaW5nIHdzdHIgPSBMItCvINGB0YLRgNC+0LrQsCDQsiBVQ1MtMi4g44GM44OA44Km44Oz44Ot44O844OJ44Gn44GN44G+44Gb44KTIjsKICAgIC8vINGI0LjRgNC+0LrQuNC1INGB0LjQvNCy0L7Qu9GLINCyIFVURi04CiAgICBzdGQ6OndzdHJpbmdfY29udmVydDxzdGQ6OmNvZGVjdnRfdXRmODx3Y2hhcl90Pj4gY29udjsKICAgIHN0ZDo6Y291dCA8PCAiQ2hyIHwgVVRGLThcbj09PT09PT09PT09PVxuIjsKICAgIGZvcihjb25zdCBhdXRvICZjOndzdHIpIHsKICAgICAgc3RkOjpzdHJpbmcgdThzdHIgPSBjb252LnRvX2J5dGVzKGMpOyAgICAgICAgCiAgICAgIHN0ZDo6Y291dCA8PCB1OHN0ciA8PCAiICAgOiAiOyAgCiAgICAgIGZvcihjb25zdCB1aW50OF90ICZpOnU4c3RyKSAKICAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6aGV4IDw8IHN0ZDo6c2V0ZmlsbCgnMCcpIDw8IHN0ZDo6c2V0dygyKSA8PCBzdGF0aWNfY2FzdDxpbnQ+KGkpIDw8ICcgJzsKICAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZGVjIDw8ICdcbic7ICAKICAgIH0KICAgIHJldHVybiAwOwp9