Asp.net Request.QueryString-替换+;(加)带空格的符号

Asp.net Request.QueryString-替换+;(加)带空格的符号,asp.net,query-string,Asp.net,Query String,abcd.aspx?ST=f7aABcBdHIm7E8/0SAWKGtz8qKkhwNpJuZ+Jh+Jg+Jg=&ET=D0698IJKXSFKDAMGY79KOD8+ONzX6IlgSrDME0QHw= 当我在我的.cs页面中使用以下代码时: Request.QueryString["ST"] 它返回以下值: "f7aABcBdHIm7E8/0SAWKGtz8qKkhwNpJuZ Jh Jg jg=" 它将+符号替换为空格字符(“”) 知道如何解决这个问题吗?+符号在查询字符串中具有语义

abcd.aspx?ST=f7aABcBdHIm7E8/0SAWKGtz8qKkhwNpJuZ+Jh+Jg+Jg=&ET=D0698IJKXSFKDAMGY79KOD8+ONzX6IlgSrDME0QHw=

当我在我的.cs页面中使用以下代码时:

Request.QueryString["ST"]
它返回以下值:

"f7aABcBdHIm7E8/0SAWKGtz8qKkhwNpJuZ Jh Jg jg="
它将+符号替换为空格字符(“”)


知道如何解决这个问题吗?

+
符号在查询字符串中具有语义含义。它用于表示空间

Server.UrlEncode(Request.QueryString["ST"])
您可以使用
Server.UrlEncode
。空格()转换为加号(+)

参考:

为什么不试试这个

源链接中的用户跟随行

 Response.Redirect("Default2.aspx?ST="+ Server.UrlEncode(Server.HtmlEncode( "abc+xyz+lmn")));
Server.HtmlDecode( Request.QueryString["ST"]);
在目标页面中,用户在下面一行

 Response.Redirect("Default2.aspx?ST="+ Server.UrlEncode(Server.HtmlEncode( "abc+xyz+lmn")));
Server.HtmlDecode( Request.QueryString["ST"]);

这将解决您的问题

我已经测试过了。它给出了正确的结果

string cidEncode = Server.UrlEncode(Request.QueryString["CID"]);
string cid = Regex.Replace(cidEncode, "%3d", "=", RegexOptions.IgnoreCase);
试试上面的链接