【问题标题】:WPF WebBrowser NavigateToString vs NavigateToStream (hebrew/non-utf8 encodings)WPF WebBrowser NavigateToString 与 NavigateToStream(希伯来语/非 utf8 编码)
【发布时间】:2011-02-17 17:42:33
【问题描述】:

当我使用 WPF WebBrowser 的 NavigateToString 方法显示 UTF8 html(其中包含希伯来语文本)时,它会完美显示。

但是,当我尝试使用 NavigateToString 以非 utf8 编码(确切地说是 CodePage 1255)显示带有希伯来语文本的 html 时,希伯来语就搞砸了。

我在 Visual Studio 的调试器中检查了 cp1255 字符串,它看起来很棒,而且当我保存 Web 浏览器内容的源代码并使用外部浏览器打开它时,它看起来很棒。

如果我使用 NavigateToStream 方法而不是 NavigateToString 方法,效果会很好。

NavigateToString 有什么问题?我是不是做错了什么?

【问题讨论】:

    标签: wpf browser hebrew


    【解决方案1】:

    NavigateToString= NavigateToStream + UTF8NoBOM 使用 NavigateToStream 并确保您在流数据中具有正确的编码。

    【讨论】:

    • 您的评论暗示原始发帖人做错了什么。但是你认为他们应该做些什么呢?你说“确保你有正确的编码”,但没有办法指定编码 - .NET 的 String 类型,根据定义,是一个 UTF-16 代码单元序列。这是即使你想改变也无法改变的东西。因此,任何采用字符串(例如NavigateToString)的 API 都根据定义要求提供 UTF-16 代码单元序列。 NavigateToString 未能通过 BOM 的事实看起来像是一个错误,因为 IE 经常会将 BOMless UTF-8 错误识别为 cp1255。
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2018-04-25
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多