Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- constexpr const unsigned char utf8_lookup_table[256] =
- {
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,
- };
- constexpr int GetUTF8CharSize(const char c) noexcept
- {
- /*
- if ((c & 0x80) == 0x00) // lead bit is zero, must be a single ascii
- return 1;
- if ((c & 0xE0) == 0xC0) // 110x xxxx
- return 2;
- if ((c & 0xF0) == 0xE0) // 1110 xxxx
- return 3;
- if ((c & 0xF8) == 0xF0) // 1111 0xxx
- return 4;
- return 0;
- */
- return utf8_lookup_table[static_cast<unsigned char>(c)];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement