MCPcopy Create free account
hub / github.com/Snapchat/Valdi / utf8Encode

Function utf8Encode

valdi_core/src/valdi_core/cpp/Text/UTF16Utils.cpp:62–82  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60 } else {
61 i += res.offset;
62 return res.pt;
63 }
64}
65
66static inline void utf8Encode(char32_t pt, std::vector<char>& out) {
67 if (pt < 0x80) {
68 out.push_back(static_cast<char>(pt));
69 } else if (pt < 0x800) {
70 out.push_back(static_cast<char>((pt >> 6) | 0xC0));
71 out.push_back(static_cast<char>((pt & 0x3F) | 0x80));
72 } else if (pt < 0x10000) {
73 out.push_back(static_cast<char>((pt >> 12) | 0xE0));
74 out.push_back(static_cast<char>(((pt >> 6) & 0x3F) | 0x80));
75 out.push_back(static_cast<char>((pt & 0x3F) | 0x80));
76 } else if (pt < 0x110000) {
77 out.push_back(static_cast<char>((pt >> 18) | 0xF0));
78 out.push_back(static_cast<char>(((pt >> 12) & 0x3F) | 0x80));
79 out.push_back(static_cast<char>(((pt >> 6) & 0x3F) | 0x80));
80 out.push_back(static_cast<char>((pt & 0x3F) | 0x80));
81 } else {
82 out.push_back(static_cast<char>(0xEF));
83 out.push_back(static_cast<char>(0xBF));
84 out.push_back(static_cast<char>(0xBD));
85 }

Callers 2

utf16ToUtf8Function · 0.85
utf32ToUtf8Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected