Monday, May 20, 2024
Homepage · c#
 Popular · Latest · Hot · Upcoming
115
rated 0 times [  121] [ 6]  / answers: 1 / hits: 134094  / 13 Years ago, thu, july 28, 2011, 12:00:00

I have a webapp created using C# and asp.net. I placed a parameter value in the querystring with a plus(+) sign. But the plus sign disappear.



How can I include the plus sign(+) in the query string without disappearing?



Please advise.



Thanks.



Edit: added code with UrlEncode



string str = Server.UrlEncode(Requery.QueryString[new]);

More From » c#

 Answers
13

+ sign has a semantic meaning in the query string. It is used to represent a space. Another character that has semantic importance in the query string is & which is used to separate the various var=value pairs in the query string.



Most server side scripts would decode the query parameters before using them, so that a + gets properly converted to a space. Now, if you want a literal + to be present in the query string, you need to specify %2B instead.



+ sign in the query string is URL-decoded to a space. %2B in the query string is URL-decoded to a + sign.



See the difference between



http://www.google.com/search?q=foo+bar



and



http://www.google.com/search?q=foo%2Bbar



In the above examples, Google's server script is URL-decoding the query parameters and then using them to do the search.



URL-encoding is nothing but % sign followed by the hex-code of the special character. For example, we know that the hex code of A is 0x41 (decimal: 65). Try this:



http://www.google.com/search?q=%41



Hope this makes URL-encoding clear.



So, if you want the + sign to be preserved when a JavaScript is fetching a URL with + signs in its query parameters and a server side script would process the query parameters after URL-decoding it, you should URL-encode the query parameters in the URL before using issuing the HTTP get request so that all + signs are converted to %2B's when the request reaches the server side script. Now when the server side script URL-decodes the query string, all %2B's gets converted back to + signs which is what you want.



See Encode URL in JavaScript? to learn how to URL-encode the parameters using JavaScript. Short answer from the discussion there:



var encodedURL = http://example.com/foo.php?var= + encodeURIComponent(param);

[#90955] Wednesday, July 27, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
hallie

Total Points: 503
Total Questions: 114
Total Answers: 103

Location: Iraq
Member since Fri, Jun 5, 2020
4 Years ago
;