我在我的应用中使用WPF WebBrowser控件。我有一个文件(mht),其中包含德语umlaute(äöü)。现在,我用.Navigate(路径)加载此文件,但问题是,这个字符显示不正确。我该如何解决这个问题?
最诚挚的问候,托马斯
答案 0 :(得分:2)
我用以下方法解决了这个问题:
static void webBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e) {
var webBrowser = sender as WebBrowser;
if(webBrowser == null) {
return;
}
var doc = (IHTMLDocument2)webBrowser.Document;
doc.charset = "utf-8";
webBrowser.Refresh();
}
答案 1 :(得分:1)
这非常古怪。
我的解决方案是在我的HTML文件中添加一个显式元标记 - “My Page.html”
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>
然后使用标准的Web浏览器.NET控件,我首先创建了一个URI对象。
webBrowser1.Url = new Uri("My Page.html");
然后使用refresh方法绘制页面。
webBrowser1.Refresh();
请注意,如果直接使用Navigate方法,则无法获取utf-8指令,但URI和刷新方法会这样做。
古怪,但它确实有效。
答案 2 :(得分:0)
WebBrowser控件在内部使用Internet Explorer,无论您在本地PC上使用哪个版本。如果你可以解决IE中的问题,它应该在WebBrowser控件中修复。
答案 3 :(得分:0)
今天早上我遇到了这个问题,这让我非常烦恼,直到找到了解决方案:
Stream stream = new MemoryStream(System.Text.Encoding.Default.GetBytes(Content_Of_HTML_File_In_String)));
webBrowser.NavigateToStream(stream);
与上述解决方案相比,您不会期望任何“ COMException”或类似的东西。