c++ 如何转换UTF8编码??

例如我知道char buffer[100]是UTF编码的,,怎样转换为UTF8??
2024-12-01 19:17:25
推荐回答(2个)
回答1:

普通sting类型 转UTF-8编码格式字符串std::string ofDewarServer::string_To_UTF8(const std::string & str)
{
int nwLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0);

wchar_t * pwBuf = new wchar_t[nwLen + 1];//一定要加1,不然会出现尾巴
ZeroMemory(pwBuf, nwLen * 2 + 2);

::MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), pwBuf, nwLen);

int nLen = ::WideCharToMultiByte(CP_UTF8, 0, pwBuf, -1, NULL, NULL, NULL, NULL);

char * pBuf = new char[nLen + 1];
ZeroMemory(pBuf, nLen + 1);

::WideCharToMultiByte(CP_UTF8, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL);

std::string retStr(pBuf);

delete []pwBuf;
delete []pBuf;

pwBuf = NULL;
pBuf = NULL;

return retStr;
}

回答2:

百度上可以搜到UTF8的编码原理,掌握后你就可结合所掌握的C语言编出程序;
UTF8的编程原理,自已搜一下,不复杂。
也可搜到现成的程序,但你肯定看不懂源程序,所以,你第一步就去了解UTF8
的编码原理。