我有一個使用C#和asp.net創建的webapp。我用加號(+)在查詢字符串中放置了一個參數值。但加號消失。加號查詢字符串
如何在查詢字符串中包含加號(+)而不會消失?
請指教。
謝謝。
編輯:添加的代碼用urlencode
string str = Server.UrlEncode(Requery.QueryString["new"]);
我有一個使用C#和asp.net創建的webapp。我用加號(+)在查詢字符串中放置了一個參數值。但加號消失。加號查詢字符串
如何在查詢字符串中包含加號(+)而不會消失?
請指教。
謝謝。
編輯:添加的代碼用urlencode
string str = Server.UrlEncode(Requery.QueryString["new"]);
+
sign在查詢字符串中具有語義含義。它用來表示空間。在查詢字符串中具有語義重要性的另一個字符是&
,它用於分隔查詢字符串中的各個var=value
對。
大多數服務器端腳本會在使用它們之前解碼查詢參數,以便+
正確轉換爲空格。現在,如果您希望在查詢字符串中存在文字+
,則需要改爲指定%2B
。
+
登錄查詢字符串是URL解碼爲空格。查詢字符串中的%2B
被URL解碼爲+符號。
見
http://www.google.com/search?q=foo+bar
和
http://www.google.com/search?q=foo%2Bbar
在上面的例子之間的差別,谷歌的服務器腳本是用它們做搜索URL解碼查詢參數,然後。
URL編碼只不過是%
符號後面跟着特殊字符的十六進制代碼。例如,我們知道A
的十六進制代碼是0x41(十進制:65)。試試這個:
http://www.google.com/search?q=%41
希望這是URL編碼清晰。
因此,如果您希望+
符號在JavaScript查詢參數中獲取帶有+
符號的URL時被保留,並且服務器端腳本將在URL解碼之後處理查詢參數,則應該使用URL編碼在使用發出HTTP獲取請求之前URL中的查詢參數,以便當請求到達服務器端腳本時,所有+
標誌被轉換爲%2B
。現在,當服務器端腳本URL解碼查詢字符串時,所有%2B
都會被轉換回+
這是您想要的。
請參閱Encode URL in JavaScript?瞭解如何使用JavaScript對參數進行URL編碼。從討論中有簡短的回答:
var encodedURL = "http://example.com/foo.php?var=" + encodeURIComponent(param);
如何在JavaScript中將+符號替換爲%2B。因爲我在javascript中創建我的查詢字符串。 – domlao
krakat,請參閱http://stackoverflow.com/q/332872/303363 –
你應該進行urlencode您的查詢字符串值,以確保任何特殊字符不會丟失。
像這樣,string str = Server.UrlEncode( Requery.QueryString [ 「新」]); ? THanks – domlao
不完全是,您需要在將它們放入查詢字符串之前對它們進行編碼,而不是在將它們取出時。你如何設置查詢字符串中的值?使用Javascript中的 – DoctorMick
,像$(「#btn」)。click(function(){var param =「C++」; ...}); – domlao
您需要編碼+符號 - 它的價值應該是%2B
的解決方案是始終包括.Replace(」「 ,「+」)當您請求查詢字符串
string s = Request.QueryString [「id」]。Trim()。Replace(「」,「+」);
試試這個,它爲我工作:
Request.QueryString["new"].Trim();
其他簡單的方法是,Request.Url.ToString().Substring(Request.Url.ToString().IndexOf("=") + 1)
假設我的網址,http://localhost/MyApp/Activate.aspx?ActivationCode=cHbtqH9P2dDZkx/mYUgFFo7nrNqSFgqdPisAzzu5/nwlEYDOHI+CQw==
在解密Funcation加入這一行:
strText = strText.Replace(" ", "+");
其他保留字符呢?這個解決方案只會解決+,而不是?等等 –
在發送給你之前ameter,你需要檢查參數包含加號,如果有需要更換一個標誌,例如: 的參數:klasjdlkasd + djid3223 可以更換:klasjdlkasdFLAGdjid3223
,當你去轉換,你需要替換angain
klasjdlkasd + djid3223
您是否有密碼? – tutts
其實值取決於用戶輸入。 – domlao
僅供參考'UrlBuilder',這似乎有點無用,這是我怎麼偶然發現你的問題。看到http://stackoverflow.com/questions/24576239/why-doesnt-uribuilder-query-escaping-url-encoding-the-query-string – KCD