37 if (!(wc & ~0x0000007F))
43 else if (!(wc & ~0x000007FF))
47 os.write(
char(0xC0 | ((wc >> 6) & 0x1F)));
48 os.write(
char(0x80 | ((wc) & 0x3F)));
50 else if (!(wc & ~0x0000FFFF))
54 os.write(
char(0xE0 | ((wc >> 12) & 0x0F)));
55 os.write(
char(0x80 | ((wc >> 6) & 0x3F)));
56 os.write(
char(0x80 | ((wc) & 0x3F)));
58 else if (!(wc & ~0x001FFFFF))
62 os.write(
char(0xF0 | ((wc >> 18) & 0x07)));
63 os.write(
char(0x80 | ((wc >> 12) & 0x3F)));
64 os.write(
char(0x80 | ((wc >> 6) & 0x3F)));
65 os.write(
char(0x80 | ((wc) & 0x3F)));
67 else if (!(wc & ~0x03FFFFFF))
71 os.write(
char(0xF8 | ((wc >> 24) & 0x03)));
72 os.write(
char(0x80 | ((wc >> 18) & 0x3F)));
73 os.write(
char(0x80 | ((wc >> 12) & 0x3F)));
74 os.write(
char(0x80 | ((wc >> 6) & 0x3F)));
75 os.write(
char(0x80 | ((wc) & 0x3F)));
77 else if (!(wc & ~0x7FFFFFFF))
81 os.write(
char(0xFC | ((wc >> 30) & 0x01)));
82 os.write(
char(0x80 | ((wc >> 24) & 0x3F)));
83 os.write(
char(0x80 | ((wc >> 18) & 0x3F)));
84 os.write(
char(0x80 | ((wc >> 12) & 0x3F)));
85 os.write(
char(0x80 | ((wc >> 6) & 0x3F)));
86 os.write(
char(0x80 | ((wc) & 0x3F)));
109 for (
const wchar_t* iter = wstr; *iter; ++iter)
121 for (
auto iter = wstr.cbegin(); iter != wstr.cend(); ++iter)