アプリでWPFWebBrowserコントロールを使用しています。ドイツ語のウムラウト(äöü)を含むファイル(mht)があります。ここで、このファイルを.Navigate(path)でロードしますが、問題は、この文字が正しく表示されないことです。どうすればこれを解決できますか?
よろしく、トーマス
アプリでWPFWebBrowserコントロールを使用しています。ドイツ語のウムラウト(äöü)を含むファイル(mht)があります。ここで、このファイルを.Navigate(path)でロードしますが、問題は、この文字が正しく表示されないことです。どうすればこれを解決できますか?
よろしく、トーマス
これは非常に風変わりです。
私の解決策は、HTMLファイルに明示的なメタタグを配置することでした-「MyPage.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();
ナビゲートメソッドを直接使用すると、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コントロールは、ローカルPCにあるバージョンに関係なく、内部でInternetExplorerを使用します。IEで問題を修正できる場合は、WebBrowserコントロールで修正する必要があります。