2016-01-17 82 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

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