C++中UTF-8转换成string

xiaoxiao2021-02-28  105

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

std::string MyString::UnicodeToAscii(const std::wstring str) { int iTextLen = 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转换成Unicode std::wstring_convert<std::codecvt_utf8<wchar_t>> conv; std::wstring wString = conv.from_bytes(utf8Data); //在转换成string return UnicodeToAscii(wString); }

这样就大功告成了!

转载请注明原文地址: https://www.6miu.com/read-39381.html

最新回复(0)