查询字符串中的特殊字符

时间:2016-01-17 15:06:33

标签: c# asp.net url query-string

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

default.aspx?file=Fame+ adlabs.xmlFame+ adlabs.xml是服务器上的实际文件名)。文件名有" +" &安培;还有空格。

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

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

变量文件名没有" +"在里面。它读作"Fame adlabs.xml"&因此我得到一个文件未找到异常。我无法重命名xml文件。有人可以引导我走向正确的方向。

感谢

2 个答案:

答案 0 :(得分:0)

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

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

请注意以下字符不起作用:~!*()'

答案 1 :(得分:0)

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

String FileName = "default.aspx?";

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

String Decoded = HttpUtility.UrlDecode(FullURL);