utf8串输出中文

来源:互联网 发布:数据库表格怎么做 编辑:程序博客网 时间:2024/06/07 10:36
bool Utf8ToZhong(const std::string &utf8_str, std::string *result_str) {if(utf8_str.size() == 0) {return false;}int move_flag = 0;string str;int start = 0,end = utf8_str.size();char str_zhong[128];int str_it = 0;while(start < end) {if(utf8_str[start] == '%') {if(move_flag == 0) {//汉字起始,计算一个汉字是几个字节int y = 0; y = HexChar2Dec(utf8_str[start+1]);y = (y<<4) +HexChar2Dec(utf8_str[start+2]);int flag = 7; while(flag > 0) { if((y&(1<<flag)) == 0) { break;}    flag--;}    move_flag = 7-flag;//总共几个字节}    start++;}    else {if(move_flag == 0) { str += utf8_str[start];start++;}    else {int y = 0; y = HexChar2Dec(utf8_str[start]);y = (y<<4) +HexChar2Dec(utf8_str[start+1]);str_zhong[str_it] = y; str += str_zhong[str_it];str_it++;start += 2;//偏移掉一个%if(move_flag > 0) {move_flag--;  //处理一个字节,消掉一个字节}}}}*result_str = str;return true;}