C++中UTF-8转换成string

来源:互联网 发布:c语言基础知识要点 编辑:程序博客网 时间:2024/05/27 20:23

本来想着有没有直接将UTF-8编码转换成string的函数,查找了半天,然而并没有,无奈只好自己封装了一个,使用了C++11,代码如下:

std::string MyString::UnicodeToAscii(const std::wstring str){intiTextLen = WideCharToMultiByte(CP_ACP, 0, str.c_str(), -1, NULL, 0,NULL, NULL);std::vector<char> vecText(iTextLen, '\0');::WideCharToMultiByte(CP_ACP, 0, str.c_str(), -1, &(vecText[0]), iTextLen, NULL, NULL);std::string strText = &(vecText[0]);return strText;}


std::string MyString::UTF8ToString(const std::string & utf8Data){//先将UTF-8转换成Unicodestd::wstring_convert<std::codecvt_utf8<wchar_t>> conv;std::wstring wString = conv.from_bytes(utf8Data);//在转换成stringreturn UnicodeToAscii(wString);}


这样就大功告成了!