+
sign has a semantic meaning in the query string. It is used to represent a
space.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.
Because + sign in the query string is URL-decoded to a space. %2B in the query
string is URL-decoded to a + sign.
In
my application from the form 1 I am redirecting to form2 and passing f1wRcMvJJ2YjLjc8dc+7ykY9szg&kanna= in
the query string.
So
in my form1 I have a button.
<div>
<asp:Button ID="btnRedirect" runat="server" OnClick="btnRedirect_Click" Text="Redirect"
/>
</div>
While clicking on the button I am redirecting
to new page with f1wRcMvJJ2YjLjc8dc+7ykY9szg&kanna= as
query string. Since my querystring as + symbol I am repacing it with %2B and encoding
it before passing in the query string. Below is the code
protected void btnRedirect_Click(object
sender, EventArgs e)
{
string
signature="f1wRcMvJJ2YjLjc8dc+7ykY9szg=&kanna";
signature = signature.Replace("+", "%2B");
Response.Redirect("Encode-Decode-QueryString.aspx?sign=" +
Server.UrlEncode(signature));
}
Now
in the page load of redirected page I am decoding the querystring and
displaying in a label.
protected void Page_Load(object
sender, EventArgs e)
{
string sign
= Request["sign"] + "";
lblSignature.Text = Server.UrlDecode(sign);
}
It
works fine . Hope it will help you.
Comments
Post a Comment