正如标题所示,我正在尝试创建一个UWP应用,我想使用Windows.System.Launcher.LaunchUriAsync
API来启动一个以中文命名的在线pdf,但是它总是返回false
。
var options = new Windows.System.LauncherOptions()
{
ContentType = "application/pdf"
};
options.UI.PreferredPlacement = Windows.UI.Popups.Placement.Above;
var flag1 = await Windows.System.Launcher.LaunchUriAsync(
new Uri("http://testserver/web/public/a.pdf"), options);
var flag2 = await Windows.System.Launcher.LaunchUriAsync(
new Uri("http://testserver/web/public/中文.pdf"), options);
flag1的值为true
,但flag2始终为false
。
实际上a.pdf
和中文.pdf
是相同的pdf文件,我可以通过IE浏览器打开http://testserver/web/public/中文.pdf
。
请给我一些建议。
答案 0 :(得分:0)
我怀疑您需要使用URL编码对这些字符进行编码,以便可以安全地在URL中使用它们:
var chinese = Uri.EscapeUriString("中文.pdf");
var flag2 = await Windows.System.Launcher.LaunchUriAsync(
new Uri("http://testserver/web/public/" + chinese));
尽管我必须提到,即使不进行编码也可以成功打开问题中的示例URL。