1930465|总操作数|138|2009-6-18 12:09:00$$1930466|静态认证总数|134|2009-6-18 12:09:00$$1930467|静态认证成功数|119|2009-6-18 12:09:00$$1930468|动态认证总数|4|2009-6-18 12:09:00$$1930469|动态认证成功数|4|2009-6-18 12:09:00$$1930470|注册总数|0|2009-6-18 12:09:00$$1930471|成功注册总数|0|2009-6-18 12:09:00$$1930472|修改总数|0|2009-6-18 12:09:00$$1930473|修改成功数|0|2009-6-18 12:09:00$$1930474|绑定总数|0|2009-6-18 12:09:00$$1930475|绑定成功数|0|2009-6-18 12:09:00$$1930476|升级总数|0|2009-6-18 12:09:00我读到的数据大概是上面这个样子。基中有一段数据如下: 1931088|0|1烫烫烫烫23|2009-6-18 12:47:00 可见中间中乱码。而在一个已经有的成熟的项目里 读 这些数据的时候没有乱吗。 说明数据本身的 存储是正确的。 只是读的时候 出现的问题。而我用我自己的工程 , 用 “和成熟的项目里一样的方法” 读是就会产生乱码。不知道是什么原因 。又怎么解决呢。
我没关心这个问题。因为不太懂 unicode
顺便说一下。 1931088|0|1烫烫烫烫23|2009-6-18 12:47:00
正确的值 应该是 1931088|0|123|2009-6-18 12:47:00
我读数据的方法是
url.Format("%s/loaddataminute.asp?uid=%s&pwd=%s&tbname=%s&startpos=%d&mode=%d&starttime=%s&endtime=%s&rnd=%d",DataSourceURL,m_uid,m_pwd,m_tbname,pos,mode,starttime,endtime,rand()); CString strData = m_session.GetUrlEx (url.GetBuffer(0));
1931088|0|1 和 23|2009-6-18 12:47:00 是分两次收到的,
接收到1931088|0|1以后,你多copy了几个字节
{
CString url = ""; CWebSiteSession *sess = GetSession();
url.Format("%s/loaddataminute.asp?uid=%s&pwd=%s&tbname=%s&startpos=%d&mode=%d&starttime=%s&endtime=%s&rnd=%d",DataSourceURL,m_uid,m_pwd,m_tbname,pos,mode,starttime,endtime,rand()); CString strData = sess->GetUrlEx (url.GetBuffer(0));
if (!strData.IsEmpty())
{
url = strData.GetBuffer(strData.GetLength());
}
else
{
url ="";
}
return url;
}楼上的几位朋友说变量没有初始化。我也没找到原因 。
{
CString strReturn; if (m_hCon == NULL && m_hInternetSession != NULL)
{
HINTERNET hURL = InternetOpenUrl(m_hInternetSession,url,NULL,0,0,0); if( hURL == NULL )
{
return strReturn;
} DWORD readsize = 1; while( readsize != 0 )
{
char szBuffer[1024];
memset(szBuffer, 0, 1024 * sizeof(char));
InternetReadFile(hURL, szBuffer, 1024, &readsize);
strReturn += szBuffer;
}
InternetCloseHandle(hURL);
} return strReturn;
}
{
char szBuffer[1024];
memset(szBuffer, 0, 1024 * sizeof(char));
InternetReadFile(hURL, szBuffer, 1024, &readsize);
strReturn += szBuffer;
} 错误 就在这里
char szBuffer[1024];
memset(szBuffer, 0, 1024 * sizeof(char)); 在我新建的 项目里 我每次读的 数据 比 原来 “成熟的项目”多了。 szBuffer[1024] 不够了。 我把 szBuffer改大一些就好了。原来“成熟的项目”出错的原因也是因为我 这样改的。
谢谢 上面的 各位朋友的帮助。 也提醒大前能注意这个问题。