101 if (codepoint_ <= 0x7f)
102 str.push_back((
char)codepoint_);
103 else if (codepoint_ <= 0x7FF) {
104 str.push_back((
char)(0xC0 | (codepoint_ >> 6)));
105 str.push_back((
char)(0x80 | (codepoint_ & 0x3F)));
106 }
else if (codepoint_ <= 0xFFFF) {
107 str.push_back((
char)(0xE0 | (codepoint_ >> 12)));
108 str.push_back((
char)(0x80 | ((codepoint_ >> 6) & 0x3F)));
109 str.push_back((
char)(0x80 | (codepoint_ & 0x3F)));
110 }
else if (codepoint_ <= 0x1FFFFF) {
111 str.push_back((
char)(0xF0 | (codepoint_ >> 18)));
112 str.push_back((
char)(0x80 | ((codepoint_ >> 12) & 0x3F)));
113 str.push_back((
char)(0x80 | ((codepoint_ >> 6) & 0x3F)));
114 str.push_back((
char)(0x80 | (codepoint_ & 0x3F)));