if (dwRet == HTTP_STATUS_OK){
/*CString strHtml=_T("");
CString pData;
TCHAR sRecived[10*1024];
while(pFile->ReadString(pData) != NULL)
{
char * pStr = pData.GetBuffer(pData.GetLength());//获取原始字符串
int szBuf = MultiByteToWideChar(CP_UTF8,0,pStr,-1,NULL,0);//获取需要多少缓存
wchar_t * pBuf = new wchar_t[szBuf * sizeof(wchar_t)];//申请缓存空间
MultiByteToWideChar(CP_UTF8,0,pStr,-1,pBuf,szBuf * sizeof(wchar_t));//转码
strHtml += pBuf;
delete [] pBuf;
}*/
char strBuff[1025]={0};
string strHtml; //是string 不是CString
while ((pFile->Read((void*)strBuff, 1024)) > 0)
{
strHtml += strBuff;
}
// _cprintf(" 读取内容结束...");
int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, strHtml.c_str(), -1, NULL, 0);
WCHAR *pUnicode = new WCHAR[unicodeLen + 1];
memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8,0,strHtml.c_str(),-1, pUnicode,unicodeLen);
CString str(pUnicode); //
AfxMessageBox (str) ;
delete []pUnicode;
}
6 个解决方案
#1
弄了两天了,还是没有好。
#2
哪位高手能帮帮忙啊?
#3
不是高手,也来掺和下。
发送端是windows吗?
发送纯英文和数字字符,接收是乱码吗?
发送中文,抓包看看发送内容是否正确?有个tcpmon263可以很简易地抓包。
发送端是windows吗?
发送纯英文和数字字符,接收是乱码吗?
发送中文,抓包看看发送内容是否正确?有个tcpmon263可以很简易地抓包。
#4
/**********************************************************************/
//先转换成宽字节,再转换成UTF_8
int nLengthNeeded = MultiByteToWideChar(CP_ACP,0,strBuff,-1,NULL,0);
wchar_t *PWCMessage = new wchar_t[nLengthNeeded + 1];
MultiByteToWideChar(CP_ACP,0,strBuff,-1,PWCMessage,nLengthNeeded);
nLengthNeeded = WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, NULL, 0, NULL, NULL);
char * str2 = new char[nLengthNeeded + 1];
WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, str2, nLengthNeeded, NULL, NULL);
//转换后的字符串保存在str2中
/************************************************************************/
//先转换成宽字节,再转换成UTF_8
int nLengthNeeded = MultiByteToWideChar(CP_ACP,0,strBuff,-1,NULL,0);
wchar_t *PWCMessage = new wchar_t[nLengthNeeded + 1];
MultiByteToWideChar(CP_ACP,0,strBuff,-1,PWCMessage,nLengthNeeded);
nLengthNeeded = WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, NULL, 0, NULL, NULL);
char * str2 = new char[nLengthNeeded + 1];
WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, str2, nLengthNeeded, NULL, NULL);
//转换后的字符串保存在str2中
/************************************************************************/
#5
不是上面的问题,是请求头的内容有问题,我自已经解决,不过还是谢谢!!
#6
请问是怎么解决的啊?
我也碰到这样的问题了
我也碰到这样的问题了
#1
弄了两天了,还是没有好。
#2
哪位高手能帮帮忙啊?
#3
不是高手,也来掺和下。
发送端是windows吗?
发送纯英文和数字字符,接收是乱码吗?
发送中文,抓包看看发送内容是否正确?有个tcpmon263可以很简易地抓包。
发送端是windows吗?
发送纯英文和数字字符,接收是乱码吗?
发送中文,抓包看看发送内容是否正确?有个tcpmon263可以很简易地抓包。
#4
/**********************************************************************/
//先转换成宽字节,再转换成UTF_8
int nLengthNeeded = MultiByteToWideChar(CP_ACP,0,strBuff,-1,NULL,0);
wchar_t *PWCMessage = new wchar_t[nLengthNeeded + 1];
MultiByteToWideChar(CP_ACP,0,strBuff,-1,PWCMessage,nLengthNeeded);
nLengthNeeded = WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, NULL, 0, NULL, NULL);
char * str2 = new char[nLengthNeeded + 1];
WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, str2, nLengthNeeded, NULL, NULL);
//转换后的字符串保存在str2中
/************************************************************************/
//先转换成宽字节,再转换成UTF_8
int nLengthNeeded = MultiByteToWideChar(CP_ACP,0,strBuff,-1,NULL,0);
wchar_t *PWCMessage = new wchar_t[nLengthNeeded + 1];
MultiByteToWideChar(CP_ACP,0,strBuff,-1,PWCMessage,nLengthNeeded);
nLengthNeeded = WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, NULL, 0, NULL, NULL);
char * str2 = new char[nLengthNeeded + 1];
WideCharToMultiByte(CP_UTF8, 0, PWCMessage, -1, str2, nLengthNeeded, NULL, NULL);
//转换后的字符串保存在str2中
/************************************************************************/
#5
不是上面的问题,是请求头的内容有问题,我自已经解决,不过还是谢谢!!
#6
请问是怎么解决的啊?
我也碰到这样的问题了
我也碰到这样的问题了