VerifyEmail.aspx?key=KMSO+tLs5zY=&val=ALKXZzxNxajUWVMaddKfPG/FcFD111CD
Request.QueryString["key"].ToString()
给了我"KMSO tLs5zY="
我想要键值"KMSO+tLs5zY="
答案 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=")
(: