3

我有一个应用程序,用户可以在其中上传名称可以包含非拉丁字符(例如西里尔文或中文)的文件。例如:

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 编码并且不编码某些字符集?

4

1 回答 1

3

您将需要创建自己的HttpEncoder.

HttpEncoder 类-备注部分解释了如何设置您的网站以HttpEncoderHttpUtilityHttpServerUtilityHttpResponseHeader.

于 2012-12-27T17:32:53.123 回答