12 if (code_point == 0 || code_point > 0x10FFFF)
14 if (code_point < 0x80) {
15 on_char(
static_cast<char>(code_point));
16 }
else if (code_point < 0x800) {
17 on_char(
static_cast<char>(0xC0 | (code_point >> 6)));
18 on_char(
static_cast<char>(0x80 | (code_point & 0x3F)));
19 }
else if (code_point < 0x10000) {
20 on_char(
static_cast<char>(0xE0 | (code_point >> 12)));
21 on_char(
static_cast<char>(0x80 | ((code_point >> 6) & 0x3F)));
22 on_char(
static_cast<char>(0x80 | (code_point & 0x3F)));
24 on_char(
static_cast<char>(0xF0 | (code_point >> 18)));
25 on_char(
static_cast<char>(0x80 | ((code_point >> 12) & 0x3F)));
26 on_char(
static_cast<char>(0x80 | ((code_point >> 6) & 0x3F)));
27 on_char(
static_cast<char>(0x80 | (code_point & 0x3F)));
size_t parse_hex(const char *str, size_t length, uint8_t *data, size_t count)
Parse bytes from a hex-encoded string into a byte array.