2011-05-05 103 views
1

我在我的應用程序中使用WPF WebBrowser控件。我有一個文件(mht),其中包含德語umlaute(äöü)。現在,我用.Navigate(路徑)加載這個文件,但問題是,這個字符顯示不正確。我該如何解決這個問題?WPF WebBrowser和特殊字符,如德語「umlaute」

最好的問候,托馬斯

回答

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(); 
    } 
0

WebBrowser控件使用Internet Explorer在內部,你有你的本地計算機上的任何一個版本。如果你可以在IE中解決這個問題,它應該在WebBrowser控件中修復。

+0

好的。我已經看到,我可以在IE中更改編碼。當我加載我的文件並將編碼更改爲UTF-8時,所有內容都顯示完美。但是我找不到這個地方,我可以在WebBrowser控件中更改編碼。你能幫我解答嗎? – BennoDual 2011-05-05 22:03:59

+0

在你的頁面中,你可以嘗試設置這種格式的編碼(charset):'' – 2011-05-05 23:13:04

+0

我已經用設置charset。 – BennoDual 2011-05-06 09:46:15

1

這是非常古怪的。

  1. 我的解決辦法是把一個明確的meta標籤在我的HTML文件 - 「我的page.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(); 
    

注意,如果你直接使用導航方法失敗拿起utf-8的指令,但URI和刷新方法確實。

古怪,但它的作品。

+1

歡迎來到SO加文。您應該添加4個空格來突出顯示代碼或將它們放在'之間,而不是試圖爲'<' & '>'提供一個很好的渲染。 – j0k 2012-09-05 15:55:14