我需要发送一个重定向url作为查询字符串参数, 不幸的是,这个url包含多个查询字符串参数,如下所示
“HTTP://主机:端口/ page2.aspx参数1 =值安培; param2的=值安培;参数3 =值”
问题是当我对这个url进行编码并通过querystring发送它时,它看起来好像没有编码,所以我的应用程序认为重定向url参数值只是
“HTTP://主机:端口/ page2.aspx参数1 =值”
并考虑
“&安培; param2的=值安培;参数3 =值”
作为当前网址的一部分
我试过Server.UrlEncode
和Server.HtmlEncode
答案 0 :(得分:2)
string myUrl = “http://host:port/page2.aspx?param1=value¶m2=value¶m3=value”;
string EncodedUrl = myUrl.EncodeTo64();
将其作为查询字符串传递并使用以下命令检索:
EncodedUrl.DecodeFrom64();
功能:
public static string EncodeTo64(this string target)
{
byte[] toEncodeAsBytes
= System.Text.ASCIIEncoding.ASCII.GetBytes(target);
string returnValue
= System.Convert.ToBase64String(toEncodeAsBytes);
return returnValue;
}
public static string DecodeFrom64(this string target)
{
byte[] encodedDataAsBytes
= System.Convert.FromBase64String(target);
string returnValue =
System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);
return returnValue;
}
答案 1 :(得分:0)
替换'&'在您的网址中使用'%26'或使用Server.UrlEncode
Responsse.redirect("redirectURL?a='http://url2?a=5%26b=7'&b=9'");
or
Responsse.redirect("redirectURL?a="+Server.UrlEncode("http://url2?a=5&b=7")+"&b=9'");
答案 2 :(得分:0)
对网址进行编码
System.Web.HttpUtility.UrlEncode(string url)