- 论坛徽章:
- 0
|
本帖最后由 lwwworkspace 于 2011-08-13 23:36 编辑
IDE: VS2005
先贴个转换代码
调用:- while(pHttpFile->ReadString(strBuff)) {
- Convert(strBuff, CP_UTF8, CP_ACP);
- }
复制代码- void Convert(CString& str, int sourceCodePage, int targetCodePage)
- {
- int iUnicodeLen = MultiByteToWideChar(sourceCodePage, 0, (LPCSTR)str.GetBuffer(), -1, NULL, 0);
- wchar_t *pUnicode = NULL;
- pUnicode = new wchar_t[iUnicodeLen + 1];
- memset(pUnicode, 0, (iUnicodeLen + 1) * sizeof(wchar_t));
- MultiByteToWideChar(sourceCodePage, 0, (LPCSTR)str.GetBuffer(), -1, (LPWSTR)pUnicode, iUnicodeLen);
- BYTE *pTargetData = NULL;
- int iTargetLen = WideCharToMultiByte(targetCodePage, 0, (LPWSTR)pUnicode, -1, (char*)pTargetData, 0, NULL, NULL);
- pTargetData = new BYTE[iTargetLen + 1];
- memset(pTargetData, 0, iTargetLen + 1);
- WideCharToMultiByte(targetCodePage, 0, (LPWSTR)pUnicode, -1, (char*)pTargetData, iTargetLen, NULL, NULL);
- CString strFormatTargetData;
- strFormatTargetData.Format(_T("%s"), pTargetData);
- delete[] pTargetData;
- delete[] pUnicode;
- pTargetData = NULL;
- pUnicode = NULL;
- }
复制代码 如果直接显示pUnicode,html内容只有中文会乱码显示不出来,其他都正常,但是通过strFormatTargetData格式化后的数据,就又全部乱码了,求大虾指导,谢谢。 ) |
|