我有一个应用程序,用户可以在其中上传名称可以包含非拉丁字符(例如西里尔文或中文)的文件。例如:
http://localhost/привет мир.html
然后,我需要能够对非法和/或特殊字符(如空格)的文件名进行 URL 编码。当我按如下方式对 URI 进行 URL 编码时:
string uri = "http://localhost/привет мир.html";
string encoded = HttpUtility.UrlPathEncode(uri);
Console.WriteLine(encoded);
这给了我以下结果:
http://localhost/%d0%bf%d1%80%d0%b8%d0%b2%d0%b5%d1%82%20%d0%bc%d0%b8%d1%80.html
我真正想要的是:
http://localhost/привет%20мир.html
大多数浏览器都支持这种格式,而我的用户(在这种情况下是俄罗斯人)需要能够以他们的语言和字符集查看更易于显示的 URL。
有没有办法对 URI 进行 URL 编码并且不编码某些字符集?