码迷,mamicode.com
首页 > 其他好文 > 详细

整型数字转utf8

时间:2018-05-16 10:57:18      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:ast   signed   amp   sed   base   esc   result   sig   int   

static std::string codePointToUTF8(unsigned int cp)
{
std::string result;

// based on description from http://en.wikipedia.org/wiki/UTF-8

if (cp <= 0x7f)
{
result.resize(1);
result[0] = static_cast<char>(cp);
}
else if (cp <= 0x7FF)
{
result.resize(2);
result[1] = static_cast<char>(0x80 | (0x3f & cp));
result[0] = static_cast<char>(0xC0 | (0x1f & (cp >> 6)));
}
else if (cp <= 0xFFFF)
{
result.resize(3);
result[2] = static_cast<char>(0x80 | (0x3f & cp));
result[1] = 0x80 | static_cast<char>((0x3f & (cp >> 6)));
result[0] = 0xE0 | static_cast<char>((0xf & (cp >> 12)));
}
else if (cp <= 0x10FFFF)
{
result.resize(4);
result[3] = static_cast<char>(0x80 | (0x3f & cp));
result[2] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 12)));
result[0] = static_cast<char>(0xF0 | (0x7 & (cp >> 18)));
}

return result;
}

整型数字转utf8

标签:ast   signed   amp   sed   base   esc   result   sig   int   

原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/9044577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!