Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string toUTF8(uint32_t cp)
- {
- char utf8[4];
- int len = 0;
- if (cp <= 0x007F)
- {
- utf8[0] = static_cast<char>(cp);
- len = 1;
- }
- else
- {
- if (cp <= 0x07FF)
- {
- utf8[0] = 0xC0;
- len = 2;
- }
- else if (cp <= 0xFFFF)
- {
- utf8[0] = 0xE0;
- len = 3;
- }
- else if (cp <= 0x10FFFF)
- {
- utf8[0] = 0xF0;
- len = 4;
- }
- else
- throw std::invalid_argument("invalid codepoint");
- for (int i = 1; i < len; ++i)
- {
- utf8[len - i] = static_cast<char>(0x80 | (cp & 0x3F));
- cp >>= 6;
- }
- utf8[0] |= static_cast<char>(cp);
- }
- return std::string(utf8, len);
- }
- string utf8 = toUTF8(final_simbol);
- cout << utf8 << endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement