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}
61
62static inline void utf8Encode(char32_t pt, std::vector<char>& out) {
63 if (pt < 0x80) {
64 out.push_back(static_cast<char>(pt));
65 } else if (pt < 0x800) {
66 out.push_back(static_cast<char>((pt >> 6) | 0xC0));
67 out.push_back(static_cast<char>((pt & 0x3F) | 0x80));
68 } else if (pt < 0x10000) {
69 out.push_back(static_cast<char>((pt >> 12) | 0xE0));
70 out.push_back(static_cast<char>(((pt >> 6) & 0x3F) | 0x80));
71 out.push_back(static_cast<char>((pt & 0x3F) | 0x80));
72 } else if (pt < 0x110000) {
73 out.push_back(static_cast<char>((pt >> 18) | 0xF0));
74 out.push_back(static_cast<char>(((pt >> 12) & 0x3F) | 0x80));
75 out.push_back(static_cast<char>(((pt >> 6) & 0x3F) | 0x80));
76 out.push_back(static_cast<char>((pt & 0x3F) | 0x80));
77 } else {
78 out.push_back(static_cast<char>(0xEF));
79 out.push_back(static_cast<char>(0xBF));
80 out.push_back(static_cast<char>(0xBD));
81 }
82}
83
84static inline OffsetPt utf8DecodeCheck(const char* str, std::string::size_type i) {
85 uint32_t b0;

Callers 2

utf16ToUtf8Function · 0.85
utf32ToUtf8Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected