WPF WebBrowser和特殊字符,如德语“变音”

本文关键字:德语 变音 WebBrowser 特殊字符 WPF | 更新日期: 2023-09-27 17:55:12

我在应用中使用 WPF Web 浏览器控件。我有一个文件(mht),其中包含德语变音符号(ä ö ü)。现在,我用.导航(路径),但问题是,此字符显示不正确。我该如何解决这个问题?

最好的问候,托马斯

WPF WebBrowser和特殊字符,如德语“变音”

这很古怪。

  1. 我的解决方案是在我的HTML文件中放置一个明确的元标记 - "我的页面.html"

    <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>
    
  2. 然后使用标准 Web 浏览器 .NET 控件,我首先创建了一个 URI 对象。

    webBrowser1.Url = new Uri("My Page.html");
    
  3. 然后使用刷新方法绘制页面。

    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"或类似的东西。

WebBrowser 控件在内部使用 Internet Explorer,无论您在本地 PC 上具有哪个版本。 如果可以在IE中修复该问题,则应在WebBrowser控件中修复该问题。