QueryString使用NameValueCollection转换为URL-Encode

时间:2012-01-20 04:43:06

标签: c# asp.net urlencode

我正在传递加密的URL字符串:

的Default.aspx?S3tLlnIKKzE%3D

我想将该URL字符串传递回变量中的ASPX页面。

protected string qs = string.Empty;

NameValueCollection qscollstring = HttpContext.Current.Request.QueryString;
qs = qscollstring[0];

返回:S3tLlnIKKzE =

qscollstring [0]中的值是正确的:S3tLlnIKKzE%3d

我理解问题是URL-Encoding,但我找不到保持字符串的方法。

似乎从qscollstring [0]中分配值是: S3tLlnIKKzE%3d
字符串更改值: S3tLlnIKKzE =

我需要留下来: S3tLlnIKKzE%3d

3 个答案:

答案 0 :(得分:4)

使用HttpUtility.UrlEncode方法对字符串进行编码。

 qs =HttpUtility.UrlEncode(qscollstring[0]);

答案 1 :(得分:0)

您还可以从当前URL的Uri中提取值,而无需对值进行编码。

样品:

 Uri u = new Uri("http://localhost.com/default.aspx?S3tLlnIKKzE%3d");
 string q = u.Query;

部分页面:

 string q = !String.IsNullOrEmpty(Request.Url.Query) && Request.Url.Query.Length > 1 ? Request.Url.Query.Substring(1) : Request.Url.Query; 

答案 2 :(得分:0)

如果您正在搜索reverse ..使用

,请跟我一样
qs =HttpUtility.UrlDecode("S3tLlnIKKzE%3d");

取回 S3tLlnIKKzE =