2011-04-09 6 views
0

DOM의 향후 조정을 위해 창없는 IHTMLDocument에 인터넷 웹 페이지가로드됩니다. charset이 틀린 것을 제외하고는 모두 괜찮습니다. META 섹션의 웹 페이지에 광고 된 charset에 관계없이 IHTMLDocument의 charset 속성은 문서가로드 된 직후 항상 "Windows-1251"로 나타납니다.MHTML의 IHTMLDocument : URL에서로드 한 후 잘못된 문자 집합

수정 된 문서를 나중에 쓸 때 인코딩 불일치로 인해 파일을 읽을 수 없습니다. 텍스트는 원본 인코딩이며 새 문서의 META charset 태그는 "Windows-1251"입니다.

다음은 문서를로드하는 데 사용하는 코드입니다 (오류 처리 및 정리가 생략되었습니다).

IHTMLDocument2* pDoc = NULL; 
    CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER, 
      IID_IHTMLDocument2, (void**)&pDoc); 

    IMoniker* pIMoniker = NULL; 
    CreateURLMonikerEx(NULL, path.c_str(), &pIMoniker, URL_MK_UNIFORM); 

    IPersistMoniker* pPMk= NULL; 
    pDoc->QueryInterface(IID_IPersistMoniker, (void **)&pPMk); 

    IBindCtx *pBCtx = NULL; 
    CreateBindCtx(0, &pBCtx); 

    pPMk->Load(FALSE, pIMoniker, pBCtx, STGM_READ|STGM_SHARE_EXCLUSIVE); 

왜 인코딩이 잘못 되었습니까? 어떻게 올바르게 설정합니까? 감사. 로드 전에 디자인 모드 에 IHTMLDocument을 넣어 해결

+0

잘못된 인코딩으로 저장된 이유는 무엇입니까? –

답변

0

문제 :

hr = pDoc->put_designMode(L"On"); 

인코딩은 바로이 수정 후입니다. (하지만 왜? ..)