我在我的应用程序中使用 WPF WebBrowser 控件。我有一个文件 (mht),其中包含德语变音符号 (ä ö ü)。现在,我用 .Navigate(path) 加载这个文件,但问题是,这个字符显示不正确。我该如何解决这个问题?
最好的问候,托马斯
我在我的应用程序中使用 WPF WebBrowser 控件。我有一个文件 (mht),其中包含德语变音符号 (ä ö ü)。现在,我用 .Navigate(path) 加载这个文件,但问题是,这个字符显示不正确。我该如何解决这个问题?
最好的问候,托马斯
这是非常古怪的。
我的解决方案是在我的 HTML 文件中放置一个明确的元标记 - “My Page.html”
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>
然后使用标准的 Web Browser .NET 控件,我首先创建了一个 URI 对象。
webBrowser1.Url = new Uri("My Page.html");
然后使用刷新方法绘制页面。
webBrowser1.Refresh();
请注意,如果您直接使用 Navigate 方法,它无法获取 utf-8 指令,但 URI 和刷新方法可以。
古怪,但它有效。
我用以下方法解决了它:
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();
}
今天早上我遇到了这个问题,这让我很恼火,直到我找到了这个解决方案:
Stream stream = new MemoryStream(System.Text.Encoding.Default.GetBytes(Content_Of_HTML_File_In_String)));
webBrowser.NavigateToStream(stream);
与上面的解决方案相比,您不会期望任何“COMException”或类似的东西。
The WebBrowser control uses Internet Explorer internally, whichever version you have on your local PC. If you can fix the problem in IE, it should be fixed in the WebBrowser control.