24,855
社区成员
发帖
与我相关
我的任务
分享
_variant_t varRspBody = m_pHttpReq->GetResponseBody();
ULONG dataLen = varRspBody.parray->rgsabound[0].cElements;
char *pContentBuffer = (char *)varRspBody.parray->pvData;
std::wstring UTF8_To_UTF16(const std::string &source)
{
unsigned long len = ::MultiByteToWideChar(CP_UTF8, NULL, source.c_str(), -1, NULL, NULL);
if (len == 0)
return std::wstring();
wchar_t *buffer = new wchar_t[len];
::MultiByteToWideChar(CP_UTF8, NULL, source.c_str(), -1, buffer, len);
std::wstring dest(buffer);
delete [] buffer;
return dest;
}
std::string UTF8_To_GBK(const std::string &source)
{
enum {GB2312 = 936};
unsigned long len = ::MultiByteToWideChar(CP_UTF8, NULL, source.c_str(), -1, NULL, NULL);
if (len == 0)
return std::string();
wchar_t *wide_char_buffer = new wchar_t[len];
::MultiByteToWideChar(CP_UTF8, NULL, source.c_str(), -1, wide_char_buffer, len);
len = ::WideCharToMultiByte(GB2312, NULL, wide_char_buffer, -1, NULL, NULL, NULL, NULL);
if (len == 0)
{
delete [] wide_char_buffer;
return std::string();
}
char *multi_byte_buffer = new char[len];
::WideCharToMultiByte(GB2312, NULL, wide_char_buffer, -1, multi_byte_buffer, len, NULL, NULL);
std::string dest(multi_byte_buffer);
delete [] wide_char_buffer;
delete [] multi_byte_buffer;
return dest;
}