2010-05-10 52 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