我創建了一個超級鏈接,當點擊生成URL,像這樣:在查詢字符串中傳遞#和++等字符?
我讀入一個文本框,如下所示:
Me.txtTags.Text = CType(Request.QueryString("Tag"), String)
但這樣做的結果是該文本框txtTags將只包含C,並沒有++。 我試過http://somesite?MyTag=C#,並且#也丟失了。 但是,如果我看地址欄的這些值是有....
我創建了一個超級鏈接,當點擊生成URL,像這樣:在查詢字符串中傳遞#和++等字符?
我讀入一個文本框,如下所示:
Me.txtTags.Text = CType(Request.QueryString("Tag"), String)
但這樣做的結果是該文本框txtTags將只包含C,並沒有++。 我試過http://somesite?MyTag=C#,並且#也丟失了。 但是,如果我看地址欄的這些值是有....
您需要使用UrlEncode
,當你建立鏈接,並UrlDecode
當你試圖讀取網址參數
MyURL = "http://www.contoso.com/articles.aspx?title=" & Server.UrlEncode("C#")
嘗試
Me.txtTags.Text = Server.UrlDecode(Request.QueryString("MyTag"))
「#」不能使用,因爲它是用於HTML錨。不知道是不是在+確切的答案,雖然
#
作爲錨標記,因此這不是一個合法的查詢參數。它表示查詢字符串的末尾,並嵌入到錨字符串的開頭。我只是碰到了這個問題,我昨天:)
+
一般用於編碼空間中的URL,這樣就不會在查詢字符串出現兩種。
你應該進行編碼時要生成使用Server.UrlEncode
該鏈接字符串特殊字符的列表,這裏有一個例子:
MyHyperLink.NavigateUrl = "http://www.mysite.com/default.aspx?mytag=" & Server.UrlEncode("C++")
而且當你試圖處理它Default.aspx中,你應該把它用Server.URLDecode
解碼,這裏有一個例子:
Me.txtTags.Text = Server.UrlDecode(Request.QueryString("mytag")) 'This will show "C++" without quotes in txtTags textbox.
我應該導入什麼模塊才能獲得Server.UrlDecode? – 2017-04-18 19:24:42