C# 非 ASCII 文件名的 Uri 问题

问题描述 投票:0回答:1

我想访问此文件:


    var myUri = new Uri("سلام.txt");

由于某种原因我需要 Uri 格式,但无法使用字符串。 例外是:

Invalid URI: The format of the URI could not be determined.

此链接没有帮助。

c# string exception unicode uri
1个回答
0
投票

如果您不能或不想重命名文件,您可以使用

HttpUtility
类及其静态方法
UrlEncode

例如:

 var encodedUri = HttpUtility.UriEncode("http://foo.bar/سلام.txt");
 // encodedUri: http%3A%2F%2Ffoo.bar%2F%D8%B3%D9%84%D8%A7%D9%85.txt

 var uri = new Uri(encodedUri);

 // if you need "convert" back:
 var decodedUri = HttpUtility.UriDecode(uri.ToString());
 // decodedUri: http://foo.bar/سلام.txt
© www.soinside.com 2019 - 2024. All rights reserved.