以前的这篇文章是有问题的。今天重新修改下。
CHtmlView->GetSource获取到的源码存在乱码的情况。就是字符集的问题,以前想多了。
解决办法也很简单,就是根据网页的charset中的内容进行内容转码即可。
比如charset = UTF-8的时候,就直接将UTF-8转存ANSI或者UNICODE即可。
如果是GB2312的,不需要转换,在中文的系统环境中ANSI好像就是GB2312。这个具体可以google下这2者的区别。
UTF-8转UNICODE:
MultiByteToWideChar(CP_UTF8, 0, lpUTF8, cbUTF8, lpUnicode, cchMaxUnicode);
UNICODE转UTF-8:
WideCharToMultiByte(CP_UTF8, 0, lpUnicode, cchUnicode, lpUTF8, cbMaxUnicode, NULL, NULL)
顺便提一句:
1、MultiByteToWideChar:第一个参数CodePage:指示的是源字符串的字符集;
2、WideCharToMultiByte:第一个参数CodePage:只是的是目标字符串的字符集;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步