得到Request.QueryString

时间:2013-06-11 11:50:06

标签: c# asp.net

VerifyEmail.aspx?key=KMSO+tLs5zY=&val=ALKXZzxNxajUWVMaddKfPG/FcFD111CD

Request.QueryString["key"].ToString()给了我"KMSO tLs5zY="

我想要键值"KMSO+tLs5zY="

2 个答案:

答案 0 :(得分:4)

如果您可以修改url参数,则可以使用HttpUtility.UrlEncode方法对值进行编码,例如:

string url = "VerifyEmail.aspx?key=" + HttpUtility.UrlEncode("KMSO+tLs5zY=");

另一种方法是使用Base64编码

string url = "VerifyEmail.aspx?key=" + EncodeTo64("KMSO+tLs5zY=");

并解码读取查询字符串的值

String value = DecodeFrom64(Request["key"]);

本文提供了EncodeTo64和DecodeFrom64的代码http://arcanecode.com/2007/03/21/encoding-strings-to-base64-in-c/

答案 1 :(得分:-2)

制作网址时,请勿使用%2B代替+

如果您在请求时获得%2B,请不要尝试使用

替换它
Request.QueryString["key"].ToString().Replace("%2B","+")

使用HttpUtility类'UrlEncode()方法:

HttpUtility.UrlEncode("KMSO+tLs5zY=")

(: