【问题标题】:how to display unicode character in web browser control in WPF如何在 WPF 的 Web 浏览器控件中显示 unicode 字符
【发布时间】:2013-10-11 09:46:19
【问题描述】:

我想在 WPF 的 Web 浏览器控件中显示不同语言的 unicode 字符 但它显示特殊字符

我必须在网络浏览器控件中设置任何设置吗?

【问题讨论】:

  • 您尝试过 HTML 实体(十六进制)吗? fileformat.info/info/unicode/char/200b/index.htm
  • 致反对者:为什么?考虑到并非所有网站都在其 HTTP 响应中发送 Content-Type: text/html; charset=,这实际上是一个好问题。

标签: c# wpf webbrowser-control


【解决方案1】:

您没有告诉我们您如何将内容加载到WebBrowser。如果您导航到 URL,请确保服务器在 HTTP 响应标头中发送正确的 charset 编码作为 Content-Type 的一部分:

Content-Type: text/html; charset=utf-8

如果您无法控制服务器,并且服务器没有在响应内容中指定字符集(一种不好的方式),您需要使用 DOM document.charset 属性手动设置编码,一旦文档已加载。这个属性没有被WebBrowser的WPF版本公开,所以你需要使用dynamic

dynamic domDocument = webBrowser.Document;
domDocument.charset = "Windows-1252";

我在这里使用“Windows-1252”作为示例,如果服务器没有指定它,您实际上需要尝试找到特定网页的正确值。将页面加载到完整的 IE 中,转到查看/编码/更多菜单并找到适用于该页面的内容。

也就是说,如果您导航到一个字符串(使用 NavigateToString),它应该支持开箱即用的 Unicode 字符。

【讨论】:

    【解决方案2】:

    您可以尝试通过在 Navigate 方法中添加 Accept-Language 来更改标题。

    http://support.microsoft.com/kb/172998

    SO 链接

    How to set Accept and Accept-Language header fields?

    【讨论】:

    • Accept-Language 标头不会影响实际的字符编码。 Content-Type 会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2019-08-08
    • 2012-06-04
    • 2020-04-16
    • 2012-03-01
    相关资源
    最近更新 更多