Я не могу запустить онлайн PDF с именем на китайском языке через LaunchUriAsync - PullRequest
0 голосов
/ 17 октября 2018

Как указано, я пытаюсь создать приложение 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, и я могу открыть http://testserver/web/public/中文.pdf через браузер IE.

Пожалуйста, дайте мне несколько советов.

1 Ответ

0 голосов
/ 17 октября 2018

Я подозреваю, что вам нужно использовать кодировку URL для кодирования этих символов, чтобы они были безопасны для использования в URL:

var chinese = Uri.EscapeUriString("中文.pdf");
var flag2 = await Windows.System.Launcher.LaunchUriAsync(
       new Uri("http://testserver/web/public/" + chinese));

Хотя я должен упомянуть, что мог бы успешно открыть пример URL в вопросе даже безкодировать его.

...