比如说我有一个emoji
std::string emojiStr = "
如果你的代码是 utf-8 编码(如果不是,也建议采用utf-8编码),你写入的 emoji 文件也是 utf-8,建议转换为 unicode 编码,随便找了份代码:
utf-8
unicode
static int z_pos(uint8_t x) { for (int i = 0; i < 5; i++, x <<= 1) { if ( (x & 0x80) == 0 ) return i; } return 4; } // convert UTF-8 string to wstring std::wstring utf8_to_wstring(const std::string& str) { std::wstring loc; uint8_t mask[5] = { 0x7f, 0x3f, 0x1f, 0x0f, 0x7}; for (size_t i = 0; i < str.length();) { int byte_cnt = z_pos(str[i]); uint16_t sum = str[i] & mask[byte_cnt]; for (size_t j = 1; j < byte_cnt; j++) { sum <<= 6; sum |= str[i+j] & mask[1]; } i += byte_cnt ? byte_cnt : 1; loc.push_back(sum); } return loc; }
代码来源
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
如果你的代码是
utf-8
编码(如果不是,也建议采用utf-8
编码),你写入的 emoji 文件也是utf-8
,建议转换为unicode
编码,随便找了份代码:
代码来源