2010-05-10 58 views
2

當我使用WPF WebBrowser的NavigateToString方法來顯示UTF8 html(其中包含希伯來語文本)時,它顯示得非常完美。WPF WebBrowser NavigateToString vs NavigateToStream(希伯來文/非UTF8編碼)

但是,當我嘗試使用NavigateToString以非UTF8編碼(代碼頁1255是準確的)顯示其中包含希伯來語文本的html時,希伯來文被混淆了。

我檢查在Visual Studio中的調試器的cp1255字符串,它看起來很棒,而且當我保存的網頁瀏覽器的內容源,並與外部瀏覽器中打開它,它看起來很大。

如果我使用NavigateToStream方法,而不是NavigateToString方法,它的偉大工程。

什麼是與NavigateToString問題?難道我做錯了什麼?

回答

0

NavigateToString = NavigateToStream + UTF8NoBOM 使用NavigateToStream並確保您在流數據中具有正確的編碼。

+0

您的評論意味着原來的海報做錯了什麼。但是你認爲他們應該怎麼做呢?你說「確保你有正確的編碼」,但是沒有辦法指定編碼 - 根據定義,.NET的String類型是一系列UTF-16編碼單元。即使你想要,這也是你無法改變的。因此,任何接受字符串的API(例如'NavigateToString')都是按照定義要求一系列UTF-16代碼單元。 「NavigateToString」未能通過BOM這一事實看起來像一個錯誤,因爲IE經常會錯誤地將無BOM UTF-8誤認爲cp1255。 – 2013-10-04 14:50:10