编程语言
首页 > 编程语言> > c#-使用wpf Webbrowser控件使用变音符号导航到uri

c#-使用wpf Webbrowser控件使用变音符号导航到uri

作者:互联网

我正在使用WPF WebBrowser控件导航到包含如下PDF文件的URI:

XAML

<WebBrowser x:Name="Browser" Loaded="Browser_OnLoaded"/>

后面的代码

        url = @"file:///c:\A.pdf"; // This works
        url = @"file:///c:\Ä.pdf"; // This shows error

        Browser.Navigate(url);

Ä.pdf错误

enter image description here

如何使用umlaut导航到文件?

我尝试了UrlEncoding,更改为ASCII编码,使用扩展ASCII都没有成功.可能吗?

编辑

使用WebUtility.UrlEncode(“Ä”);产生Ä为什么?:

enter image description here

解决方法:

要使其与WebBrowser一起使用,必须更新编码.通过引用System.Web程序集,您可以使用:

  System.Web.HttpUtility.UrlEncode("Ä", Encoding.GetEncoding("ISO-8859-1")));

对于以下示例,我使用了字符Ä.

所有非ASCII字符必须在URL中使用百分比编码字符进行编码.在以下RFC(第21页,第3.2.2节的最后一段)中对此进行了说明:https://tools.ietf.org/html/rfc3986.

必须先根据UTF-8 [STD63]对非ASCII字符进行编码,然后必须对相应UTF-8序列的每个八位字节进行百分比编码,以表示为URI字符.

因此,对应于Ä的UTF8字符是C384.它对应于百分比编码值:Ä.

您可以使用以下代码对文件名进行编码:

System.Net.WebUtility.UrlEncode("Ä");

要么

Uri.EscapeUriString("Ä");

标签:webbrowser-control,wpf,c
来源: https://codeday.me/bug/20191026/1938820.html