我有一个应用程序,用户可以上传其名称可以包含非拉丁字符(如西里尔文或中文)的文件。例如:
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。
有没有办法对URL进行编码并让它不对某些字符集进行编码?
答案 0 :(得分:3)
您需要创建自己的HttpEncoder
。
HttpEncoder Class - 备注部分介绍如何设置您的网站,以便HttpEncoder
,HttpUtility
默认使用HttpServerUtility
, HttpResponseHeader
。