16 unsigned char ch =
static_cast<unsigned char>(*in);
28 if ((*
in & 0xc0) != 0x80 &&
codepoint <= 0x10ffff) {
29 if (
sizeof(
wchar_t) > 2) {
32 out.append(1,
static_cast<wchar_t>(0xd800 + (
codepoint >> 10)));
33 out.append(1,
static_cast<wchar_t>(0xdc00 + (
codepoint & 0x03ff)));
46 if (*
in >= 0xd800 && *
in <= 0xdbff) {
49 if (*
in >= 0xdc00 && *
in <= 0xdfff)
56 out +=
static_cast<char>(0xc0 | ((
codepoint >> 6) & 0x1f));
59 out +=
static_cast<char>(0xe0 | ((
codepoint >> 12) & 0x0f));
60 out +=
static_cast<char>(0x80 | ((
codepoint >> 6) & 0x3f));
63 out +=
static_cast<char>(0xf0 | ((
codepoint >> 18) & 0x07));
64 out +=
static_cast<char>(0x80 | ((
codepoint >> 12) & 0x3f));
65 out +=
static_cast<char>(0x80 | ((
codepoint >> 6) & 0x3f));
std::wstring UTF8_to_wchar(const char *in)
std::string wchar_to_UTF8(const wchar_t *in)