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错误
题
如何使用umlaut导航到文件?
我尝试了UrlEncoding,更改为ASCII编码,使用扩展ASCII都没有成功.可能吗?
编辑
使用WebUtility.UrlEncode(“Ä”);产生Ä为什么?:
解决方法:
要使其与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