关于编码转换的一些问题和整理(持续更新)

来源:互联网 发布:怎样才能注销淘宝账号 编辑:程序博客网 时间:2024/05/21 06:40

Unicode转GBK

std::string UnicodeTo(std::string sUnicode){std::string sgbk = sUnicode;//printf("unicode:%s\n", sgbk.c_str());setlocale(LC_ALL, "");int npos = sgbk.find("\\u");while(npos != std::string::npos){if(sgbk.length() - npos < 6)break;char sGBK[5]; memset(sGBK, 0, 5);wchar_t ws[2]; memset(ws, 0, 2);ws[0] = strtol(sgbk.substr(npos+2, 4).c_str(), NULL, 16);wcstombs(sGBK, ws, 5);//printf("<%s %s>", sgbk.substr(npos+2, 4).c_str(), sGBK);std::string stemp = sgbk.substr(0, npos);stemp += sGBK;if(npos+6 < sgbk.length())stemp += sgbk.substr(npos+6, sgbk.length()-npos-6);sgbk = stemp;//printf("%s\n", sgbk.c_str());npos = sgbk.find("\\u");}return sgbk;}


0 0
原创粉丝点击