2016-01-17 77 views
1

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

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

当我检查文件名从查询字符串如下:

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

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

谢谢

+1

你可以找到你的答案[这里](http://stackoverflow.com/questions/6855624/plus-sign-in-query-string) –

+0

@iuliu.net非常感谢,解决了这个问题。 – Robin

回答

0

如果你想在C#中的服务器上执行它:

String FileName = "default.aspx?"; 

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

String Decoded = HttpUtility.UrlDecode(FullURL); 
0

你应该URL编码到你的JavaScript在发送前:

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

注重的是下面的字符将不起作用:~!*()'

+0

感谢您的回复。不幸的是,我无法更改发件人页面上的代码,我必须从重定向页面处理此问题。 – Robin

+0

喔。粗鲁的菲利普,粗鲁。 –