簡體   English   中英

C ++,Web瀏覽器控件:無法更改編碼/字符集

[英]C++, web browser control: cannot change encoding/charset

我正在C ++應用程序托管的Web瀏覽器ActiveX控件中顯示一個文檔。 該文檔具有一個META標記,該標記指定了不正確的字符集,因此輸出很有趣。 我知道正確的編碼,並希望通過編程方式對其進行更改以解決該問題。 但是無論我如何嘗試,編碼都保持不變。

我已經嘗試過各種組合和口味:

  • IHTMLDocument2::put_Charset (文檔加載完成后);
  • 更改“ META”標簽的“ charset”屬性(使用IHTMLMetaElement );
  • 完全刪除“ META”標簽(通過將其“ outerHTML”設置為空字符串);
  • 刷新控件。

該控件在保留不正確的編碼方面表現出非凡的持久性。 我還有其他選擇嗎? 我無法操縱正在加載的文檔的來源。

嘗試將designMode屬性設置為"On"

根據這個 ,它應該工作,如果你打電話IWebBrowser->Refresh()調用后IHTMLDocument2->put_charset()

最終的工作如下:

在瀏覽器事件“ NavigateComplete2”的處理程序中,

  • 使用charset屬性修改字符集,
  • 然后通過將其externalHTML設置為空字符串來丟棄META標簽,
  • 然后刷新該控件。

修改這些操作的順序或省略步驟將使整個操作無效。 MSHTML很挑剔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM