查询字符串中的特殊字符

Special chars in query string

我正在传递一个包含文件名的查询字符串参数。

default.aspx?file=Fame+ adlabs.xmlFame+ adlabs.xml 是服务器上的实际文件名)。文件名有“+”和空格。

当我从查询字符串中检查文件名时,如下所示:

   var fileName = Request.QueryString["file"];

变量文件名中没有“+”。它显示为 "Fame adlabs.xml" & 因此我得到一个文件未找到异常。我无法重命名 xml 文件。有人可以指导我正确的方向吗?

谢谢

您应该 URL 在发送之前编码到您的 javascript 中:

var name = "Fame+ adlabs.xml";
var url = "default.aspx?file=" + encodeURIComponent(name);

注意后面的字符不起作用:~!*()'

如果您尝试在服务器上使用 C# 执行此操作:

String FileName = "default.aspx?";

String FullURL = FileName + HttpUtility.UrlEncode("Fame + adlabs.xml");

String Decoded = HttpUtility.UrlDecode(FullURL);