C++,Web浏览器控件:无法更改编码/字符集
问题描述:
我正在C++应用程序中托管的Web浏览器ActiveX控件中显示一个文档。这个文档有一个META标签,它指定了不正确的字符集,所以输出很有趣。我知道正确的编码,并想通过编程来修改它。但无论我尝试,编码保持不变。C++,Web浏览器控件:无法更改编码/字符集
我alredy尝试,以各种组合和口味:
-
IHTMLDocument2::put_Charset
(后文档加载完成); - 更改“META”标记的“字符集”属性(使用
IHTMLMetaElement
); - 完全删除“META”标签(将其“outerHTML”设置为空字符串);
- 刷新控件。
该控件在保留不正确的编码方面表现出卓越的持久性。我的其他选择是什么?我无法操作正在加载的文档的来源。
答
这里是最终的工作:
在 “NavigateComplete2” 浏览器事件的处理程序,
- 字符集使用charset属性修改,
- 然后的META标签被抛出通过将其外部HTML设置为空字符串,
- 和然后控件被刷新。
修改这些操作的顺序或省略步骤将使整个操作无效。 MSHTML很挑剔。
答
试着把designMode
财产"On"
。
谢谢,但刷新没有帮助。如果有*没有* meta标签,它的工作原理;如果有*错误*元标记,它什么都不做。 – user38329 2012-01-27 21:42:27