解决方案 »
- 遍历文件夹的问题?
- 怎样在MFC里面建立一个webservice?
- 如何实时反应客户端与服务器端是否还处与连接状态???急!!
- 请教一个关于模板匹配的问题,在线等
- 有了解SDK的吗????
- unexpected end of file while looking for precompiled header directive怎么办?
- 郁闷至极!!!!!!!!!!!!!!!!!!!!!!请速回帖!!
- 怎么在MFC中播放ogg格式的音频
- mfc 使另一个窗口不能拖拉
- 照着书本敲的 win32正弦曲线 <默认正常环境测试已经成功>作记录用
- MFC静态文本框上画矩形,画出的矩形位置偏移的太大了,悲剧啊
- MFC如何打印Picture控件内容??在线等,我这有源码,需要看请留下联系方式。麻烦各位了。
该如何使得VC可以正确读出数据呢?
修改VC的设置还是在代码中填一些什么?
如果要填 该填一些什么呢?
(好吧 我<del>无耻<\del>诚心的伸手求代码)
该如何使得VC可以正确读出数据呢?
修改VC的设置还是在代码中填一些什么?
如果要填 该填一些什么呢?
(好吧 我<del>无耻</del>诚心的伸手求代码)
void ConvertUtf8ToGBK(CString& strUtf8)
{
int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0);
unsigned short * wszGBK = new unsigned short[len+1];
memset(wszGBK, 0, len * 2 + 2);
MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, (LPWSTR)wszGBK, len); len = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)wszGBK, -1, NULL, 0, NULL, NULL);
char *szGBK=new char[len + 1];
memset(szGBK, 0, len + 1);
WideCharToMultiByte (CP_ACP, 0, (LPCWSTR)wszGBK, -1, szGBK, len, NULL,NULL); strUtf8 = szGBK;
delete[] szGBK;
delete[] wszGBK;
}
偷懒,直接复制粘贴代码给你吧。
5L 可以说的详细点吗?
1:现在的程序本身不是_UNICODE就是_MSBC,汉字也是字符,只不过和拉丁字母长的不一样,本质上对计算机来说没区别。因此在WINDOWS系统中API有两种,分别对应着两种字符集。命名大都是xxxxxxxxA,xxxxxxxxW,之所以在平时写程序时很少看到这样的名字,那是因为有MS在提供系统API时把这类的函数都加了一个预编译条件,如下面代码:
#ifdef _UINCODE
#define xxxxxxx xxxxxxxW
#else //_UINCODE
#define xxxxxxx xxxxxxxA
#endif //_UINCODE
2:知道了上面的问题,因此要确定在程序中使用哪一种函数(两种一起用也可以,但是设计很麻烦,代码少还好说,多了就费劲了,如果不是非常有钱或有时间就不要在这方面耽误功夫了。),假如使用xxxxxxW类型的函数来处理HTTP返回的内容,就要把返回的内容给转成_UNICODE类型,再用相关的函数处理就可以了。3:1、2两个问题确定后,下面再分析HTTP返回内容何时要转,何时不用转。这里就要说到HTTP返回头协议(详细内容看RFC文档),CONTENT_TYPE 字段指示着后面跟随数据是用的哪一种变码。下面示便代码可能有些帮助: if( CHtmlAnalyzer::SearchText(szContentType,_T("charset=utf-8")) )
m_objHtml.TakeAnapshot(pszContentBuf + 3,nRead -3,CHtmlAnalyzer::CHARSET_UTF8); // skip 0xEF,0xBB,0xBF
else if( CHtmlAnalyzer::SearchText(szContentType,_T("unicode")) )
m_objHtml.TakeAnapshot(pszContentBuf + 2,nRead -2,CHtmlAnalyzer::CHARSET_UNICODE);// skip 0xFE,0xFF
else
m_objHtml.TakeAnapshot(pszContentBuf,nRead,CHtmlAnalyzer::CHARSET_MULTIBYTE);最后:要注意的有些返回头指示的字符集类型,不一定是后面跟随数据的实际类型,此时的代码就要注意处理了。当然这类情况非常地少,暂时可以不用考虑。------匆匆忙忙写,也许有错误,将就着看吧--------------