#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
using namespace std;
int main() {
string us = u8"pi: \u03c0"; // 70 69 3a 20 cf 80
cout << us << endl;
cout << u'\u03c0' << endl;
cout << u'\U0001d11e' << endl;
wstring_convert<codecvt_utf8<wchar_t>> myconv;
string mbstring = myconv.to_bytes(L"Hello");
cout << mbstring << endl;
wstring_convert<codecvt_utf8<uchar16_t>> myconv2;
string mbstring2 = myconv.to_bytes(u"pi: \u03c0");
cout << mbstring2 << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bG9jYWxlPgojaW5jbHVkZSA8Y29kZWN2dD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgc3RyaW5nIHVzID0gdTgicGk6IFx1MDNjMCI7IC8vIDcwIDY5IDNhIDIwIGNmIDgwCiAgICBjb3V0IDw8IHVzIDw8IGVuZGw7CiAgICBjb3V0IDw8IHUnXHUwM2MwJyA8PCBlbmRsOwogICAgY291dCA8PCB1J1xVMDAwMWQxMWUnIDw8IGVuZGw7CgogICAgd3N0cmluZ19jb252ZXJ0PGNvZGVjdnRfdXRmODx3Y2hhcl90Pj4gbXljb252OwogICAgc3RyaW5nIG1ic3RyaW5nID0gbXljb252LnRvX2J5dGVzKEwiSGVsbG8iKTsKICAgIGNvdXQgPDwgbWJzdHJpbmcgPDwgZW5kbDsKCiAgICB3c3RyaW5nX2NvbnZlcnQ8Y29kZWN2dF91dGY4PHVjaGFyMTZfdD4+IG15Y29udjI7CiAgICBzdHJpbmcgbWJzdHJpbmcyID0gbXljb252LnRvX2J5dGVzKHUicGk6IFx1MDNjMCIpOwogICAgY291dCA8PCBtYnN0cmluZzIgPDwgZW5kbDsKCn0K